From 14307b82121e0745528960dfa9ffeb4736e6be78 Mon Sep 17 00:00:00 2001 From: Ruslan Shestopalyuk Date: Wed, 14 Dec 2022 22:38:12 -0800 Subject: [PATCH] Setup a global Performance singleton, according to the standard Summary: Makes sure that the global (standard) `performance` instance is initialized to still both provide `Performance.now()` as before, but also allows for the newly implemented functionality from the WebPerf API, such as marks/measures. Changelog: [Internal] Reviewed By: christophpurrer Differential Revision: D42017812 fbshipit-source-id: ddbe79e91b45a84871de94018305f2a4536ada4b --- Libraries/Core/setUpPerformance.js | 15 ++------------- Libraries/WebPerformance/Performance.js | 4 ++++ 2 files changed, 6 insertions(+), 13 deletions(-) diff --git a/Libraries/Core/setUpPerformance.js b/Libraries/Core/setUpPerformance.js index 6d59a8657d6..26dfe88a70a 100644 --- a/Libraries/Core/setUpPerformance.js +++ b/Libraries/Core/setUpPerformance.js @@ -8,19 +8,8 @@ * @format */ -'use strict'; +import Performance from '../WebPerformance/Performance'; if (!global.performance) { - global.performance = ({}: {now?: () => number}); -} - -/** - * Returns a double, measured in milliseconds. - * https://developer.mozilla.org/en-US/docs/Web/API/Performance/now - */ -if (typeof global.performance.now !== 'function') { - global.performance.now = function () { - const performanceNow = global.nativePerformanceNow || Date.now; - return performanceNow(); - }; + global.performance = new Performance(); } diff --git a/Libraries/WebPerformance/Performance.js b/Libraries/WebPerformance/Performance.js index 0f05de293c2..0feb3444697 100644 --- a/Libraries/WebPerformance/Performance.js +++ b/Libraries/WebPerformance/Performance.js @@ -188,6 +188,10 @@ export default class Performance { NativePerformance.clearMeasures(measureName); } + /** + * Returns a double, measured in milliseconds. + * https://developer.mozilla.org/en-US/docs/Web/API/Performance/now + */ now(): HighResTimeStamp { return getCurrentTimeStamp(); }