diff --git a/packages/react-native/Libraries/Core/setUpTimers.js b/packages/react-native/Libraries/Core/setUpTimers.js index db0ac5dc1e7..f4bc4360ab9 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 5fa44e54803..4f07158ad6b 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);