// Public: Measure how long a function takes to run. // // description - A {String} description that will be logged to the console when // the function completes. // fn - A {Function} to measure the duration of. // // Returns the value returned by the given function. window.measure = function (description, fn) { let start = Date.now() let value = fn() let result = Date.now() - start console.log(description, result) return value } // Public: Create a dev tools profile for a function. // // description - A {String} description that will be available in the Profiles // tab of the dev tools. // fn - A {Function} to profile. // // Returns the value returned by the given function. window.profile = function (description, fn) { window.measure(description, function () { console.profile(description) let value = fn() console.profileEnd(description) return value }) }