Forked from paulirish/performance.now()-polyfill.js
Last active
July 8, 2016 11:00
-
-
Save SindreSvendby/27f2d83cb3001e9773d451e864948542 to your computer and use it in GitHub Desktop.
performance.now() polyfill (aka perf.now())
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// @license http://opensource.org/licenses/MIT | |
// copyright Paul Irish 2015 | |
// Date.now() is supported everywhere except IE8. For IE8 we use the Date.now polyfill | |
// github.com/Financial-Times/polyfill-service/blob/master/polyfills/Date.now/polyfill.js | |
// as Safari 6 doesn't have support for NavigationTiming, we use a Date.now() timestamp for relative values | |
// if you want values similar to what you'd get with real perf.now, place this towards the head of the page | |
// but in reality, you're just getting the delta between now() calls, so it's not terribly important where it's placed | |
(function(){ | |
if ("performance" in window == false) { | |
window.performance = {}; | |
} | |
Date.now = (Date.now || function () { // thanks IE8 | |
return new Date().getTime(); | |
}); | |
if ("now" in window.performance == false){ | |
var nowOffset = Date.now(); | |
if (performance.timing && performance.timing.navigationStart){ | |
nowOffset = performance.timing.navigationStart | |
} | |
window.performance.now = function now(){ | |
return Date.now() - nowOffset; | |
} | |
if (!performance.timing) { | |
performance.timing = {}; | |
} | |
if (!performance.timing.navigationStart) { | |
performance.timing.navigationStart = function() { | |
return nowOffset; | |
} | |
} | |
} | |
})(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Added polyfill for
performance.timing.navigationStart
also.Needed a workaround to use a thirdparty lib that checked if
performance.now
existed and then usedperformance.timing.navigationStart
.