react-native-macos/Libraries/Core
Ramanpreet Nara 83f13e15c6 Bridgeless mode: Stop register JSTimers as callable JavaScript module
Summary:
We do not need to register JSTimers as a callable JavaScript module in bridgeless mode.

How we know bridgeless mode doesn't use JSTimers: [xbgs JSTimers](https://fburl.com/code/clbz47j5)

## Details: iOS
JSTimers is only called into [by RCTCxxBridge](https://www.internalfb.com/code/fbsource/[88911d726fb4413765903c32a9077cd662ee7b6e]/xplat/js/react-native-github/React/CxxBridge/RCTCxxBridge.mm?lines=1471), and [RCTTiming.mm, which uses the RCTBridge](https://www.internalfb.com/code/fbsource/[88911d726fb4413765903c32a9077cd662ee7b6e]/xplat/js/react-native-github/React/CoreModules/RCTTiming.mm?lines=23%2C241%2C264). RCTBridge is unavailable in bridgeless mode.

## Details: Android
JSTimers is only called into [by TimingModule, inside its BridgeTimerExecutor](https://www.internalfb.com/code/fbsource/[88911d726fb4413765903c32a9077cd662ee7b6e]/xplat/js/react-native-github/ReactAndroid/src/main/java/com/facebook/react/modules/core/TimingModule.java?lines=31%2C40%2C49). This BridgeTimerExecutor is [passed to TimingModule's JavaTimerManager](https://www.internalfb.com/code/fbsource/[88911d726fb4413765903c32a9077cd662ee7b6e]/xplat/js/react-native-github/ReactAndroid/src/main/java/com/facebook/react/modules/core/TimingModule.java?lines=61-66).

The Bridgeless React instance on Android **does not** use this TimingModule, or this BridgeTimerExecutor. Instead, the Bridgeless React instance [creates its own JavaTimerManager](https://www.internalfb.com/code/fbsource/[88911d726fb4413765903c32a9077cd662ee7b6e]/fbandroid/java/com/facebook/venice/ReactInstance.java?lines=118-123), [in C++](https://www.internalfb.com/code/fbsource/[88911d726fb4413765903c32a9077cd662ee7b6e]/fbandroid/java/com/facebook/venice/ReactInstance.java?lines=117%2C121%2C382), that [implements the callTimers APIs in C++](https://www.internalfb.com/code/fbsource/[88911d726fb4413765903c32a9077cd662ee7b6e]/fbandroid/java/com/facebook/venice/jni/JJSTimerExecutor.cpp?lines=18-22). Therefore, in Bridgeless mode, the React instance calls into TimerManager to execute timers, whereas in Bridge mode, TimingModule calls into JSTimers to call timers. Hence, JSTimers should also not be used in bridgeless mode.

Changelog: [Internal]

Reviewed By: fkgozali

Differential Revision: D37208873

fbshipit-source-id: ef6ebe0e8a9fcbcc1f8403ed40ff94ec00b2beac
2022-06-16 17:59:40 -07:00
..
Devtools Add annotations to unannotated variable declarations [manually-modified] 2022-04-27 19:15:55 -07:00
SegmentFetcher Update copyright headers from Facebook to Meta 2021-12-30 15:11:21 -08:00
Timers truncate JSTimers errors array instead of making it nullable 2022-01-14 09:06:56 -08:00
__mocks__ Update copyright headers from Facebook to Meta 2021-12-30 15:11:21 -08:00
__tests__ Update copyright headers from Facebook to Meta 2021-12-30 15:11:21 -08:00
ExceptionsManager.js Remove console.disableYellowBox support 2022-03-14 05:33:40 -07:00
ExtendedError.js Update copyright headers from Facebook to Meta 2021-12-30 15:11:21 -08:00
InitializeCore.js Update copyright headers from Facebook to Meta 2021-12-30 15:11:21 -08:00
NativeExceptionsManager.js Update copyright headers from Facebook to Meta 2021-12-30 15:11:21 -08:00
RawEventEmitter.js Rename RawEventTelemetryEventEmitter to RawEventEmitter 2022-02-07 18:19:53 -08:00
ReactFiberErrorDialog.js Update copyright headers from Facebook to Meta 2021-12-30 15:11:21 -08:00
ReactNativeVersion.js Update copyright headers from Facebook to Meta 2021-12-30 15:11:21 -08:00
ReactNativeVersionCheck.js Update RN Version Expected Structure (#32892) 2022-01-25 22:23:30 -08:00
checkNativeVersion.js Update copyright headers from Facebook to Meta 2021-12-30 15:11:21 -08:00
polyfillPromise.js Remove nonstandard Promise.prototype.done implementation 2022-05-05 03:55:10 -07:00
setUpAlert.js Update copyright headers from Facebook to Meta 2021-12-30 15:11:21 -08:00
setUpBatchedBridge.js Bridgeless mode: Stop register JSTimers as callable JavaScript module 2022-06-16 17:59:40 -07:00
setUpDeveloperTools.js Update copyright headers from Facebook to Meta 2021-12-30 15:11:21 -08:00
setUpErrorHandling.js Update copyright headers from Facebook to Meta 2021-12-30 15:11:21 -08:00
setUpGlobals.js Update copyright headers from Facebook to Meta 2021-12-30 15:11:21 -08:00
setUpNavigator.js Update copyright headers from Facebook to Meta 2021-12-30 15:11:21 -08:00
setUpPerformance.js Fixes to non-product code (e.g React Native) 2022-05-04 16:13:07 -07:00
setUpReactDevTools.js Introduce PlatformBaseViewConfig and fix SVC for RCTView 2022-01-31 14:52:32 -08:00
setUpReactRefresh.js Update copyright headers from Facebook to Meta 2021-12-30 15:11:21 -08:00
setUpRegeneratorRuntime.js Update copyright headers from Facebook to Meta 2021-12-30 15:11:21 -08:00
setUpSegmentFetcher.js Update copyright headers from Facebook to Meta 2021-12-30 15:11:21 -08:00
setUpSystrace.js Update copyright headers from Facebook to Meta 2021-12-30 15:11:21 -08:00
setUpTimers.js Update copyright headers from Facebook to Meta 2021-12-30 15:11:21 -08:00
setUpXHR.js Update copyright headers from Facebook to Meta 2021-12-30 15:11:21 -08:00