From efc96707451e9a94d69d984bc564ebccd4b254b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rub=C3=A9n=20Norte?= Date: Wed, 29 May 2024 11:13:01 -0700 Subject: [PATCH] Clean up old code for microtasks in Hermes (#44708) Summary: Changelog: [internal] We had a fallback to use a Hermes internal API if the native module exposing `queueMicrotask` wasn't available. This is no longer necessary as the module is available everywhere we enable the event loop, so we can remove it. Differential Revision: D57922076 --- .../react-native/Libraries/Core/setUpTimers.js | 15 +++++---------- .../webapis/microtasks/specs/NativeMicrotasks.js | 4 +++- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/packages/react-native/Libraries/Core/setUpTimers.js b/packages/react-native/Libraries/Core/setUpTimers.js index db0ac5dc1e7cf3..f4bc4360ab921f 100644 --- a/packages/react-native/Libraries/Core/setUpTimers.js +++ b/packages/react-native/Libraries/Core/setUpTimers.js @@ -63,17 +63,12 @@ if ( // mechanism to pass feature flags from RN to React in OSS. global.RN$enableMicrotasksInReact = true; - polyfillGlobal('queueMicrotask', () => { - const nativeQueueMicrotask = + polyfillGlobal( + 'queueMicrotask', + () => require('../../src/private/webapis/microtasks/specs/NativeMicrotasks') - .default?.queueMicrotask; - if (nativeQueueMicrotask) { - return nativeQueueMicrotask; - } else { - // For backwards-compatibility - return global.HermesInternal?.enqueueJob; - } - }); + .default.queueMicrotask, + ); // We shim the immediate APIs via `queueMicrotask` to maintain the backward // compatibility. diff --git a/packages/react-native/src/private/webapis/microtasks/specs/NativeMicrotasks.js b/packages/react-native/src/private/webapis/microtasks/specs/NativeMicrotasks.js index 5fa44e54803d0d..4f07158ad6b5e0 100644 --- a/packages/react-native/src/private/webapis/microtasks/specs/NativeMicrotasks.js +++ b/packages/react-native/src/private/webapis/microtasks/specs/NativeMicrotasks.js @@ -16,4 +16,6 @@ export interface Spec extends TurboModule { +queueMicrotask: (callback: () => mixed) => void; } -export default (TurboModuleRegistry.get('NativeMicrotasksCxx'): ?Spec); +export default (TurboModuleRegistry.getEnforcing( + 'NativeMicrotasksCxx', +): Spec);