Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix: Use same implementation for
performance.now()
on iOS and Andro…
…id (#32695) Summary: I've noticed that the `performance.now()` implementations differ on iOS and Android. iOS: ```objc PerformanceNow iosPerformanceNowBinder = []() { // CACurrentMediaTime() returns the current absolute time, in seconds return CACurrentMediaTime() * 1000; }; ``` Android: ```c++ double reactAndroidNativePerformanceNowHook() { auto time = std::chrono::steady_clock::now(); auto duration = std::chrono::duration_cast<std::chrono::nanoseconds>( time.time_since_epoch()) .count(); constexpr double NANOSECONDS_IN_MILLISECOND = 1000000.0; return duration / NANOSECONDS_IN_MILLISECOND; } ``` For consistency, I thought why not just use the same implementation on both iOS and Android. It also seems more logical to use Chrono on iOS, since it has nanosecond precision and we just multiply it to milliseconds, whereas `CACurrentMediaTime` multiplies to seconds, and we divide it down to milliseconds again. ## Changelog (internal change only) Pull Request resolved: #32695 Test Plan: Run on iOS and Android: ```ts const now = global.performance.now() console.log(`${Platform.OS}: ${now}`) ``` Reviewed By: feedthejim Differential Revision: D32793838 Pulled By: ShikaSD fbshipit-source-id: e7967780be95956a75a3a3757311af0077976d23
- Loading branch information