raf-timer
Version:
An abstraction around requestionAnimationFrame.
37 lines (29 loc) • 1.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
// @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
var performance = 'performance' in window ? window.performance : {};
var dateNow = Date.now || function () {
// thanks IE8
return new Date().getTime();
};
var now = undefined;
if ('now' in performance == false) {
var nowOffset = dateNow();
if (performance.timing && performance.timing.navigationStart) {
nowOffset = performance.timing.navigationStart;
}
now = function now() {
return dateNow() - nowOffset;
};
} else {
now = performance.now.bind(performance);
}
exports.default = now;