From 4e7155ee5338e0a48ab8dd1380d7fa64d70d7a1d Mon Sep 17 00:00:00 2001 From: Emily Janzer Date: Mon, 10 Jun 2019 14:59:21 -0700 Subject: [PATCH] Add RN$Bridgeless flag, use it to conditionally skip bridge setup Summary: In bridgeless mode we don't want to set up the batched bridge, which is set up as part of InitializeCore. Instead of deleting InitializeCore completely, let's just skip this step if we're in bridgeless mode, which we'll detect using a global variable set on the runtime from cpp (`RN$Bridgeless`). This way you still get an error if the bridge is somehow not set up properly when you're not in bridgeless mode (it won't fail silently). Reviewed By: fkgozali Differential Revision: D15721940 fbshipit-source-id: 73896e25874dd000f37d1abc9cf6be549ab3434f --- Libraries/Core/setUpBatchedBridge.js | 78 +++++++++++++++------------- 1 file changed, 42 insertions(+), 36 deletions(-) diff --git a/Libraries/Core/setUpBatchedBridge.js b/Libraries/Core/setUpBatchedBridge.js index e9d33fe6ae3..21c85c69031 100644 --- a/Libraries/Core/setUpBatchedBridge.js +++ b/Libraries/Core/setUpBatchedBridge.js @@ -10,42 +10,48 @@ 'use strict'; /** - * Set up the BatchedBridge. This must be done after the other steps in - * InitializeCore to ensure that the JS environment has been initialized. - * You can use this module directly, or just require InitializeCore. + * We don't set up the batched bridge in bridgeless mode. Once we've migrated + * everything over to bridgeless we can just delete this file. */ -const BatchedBridge = require('../BatchedBridge/BatchedBridge'); -BatchedBridge.registerLazyCallableModule('Systrace', () => - require('../Performance/Systrace'), -); -BatchedBridge.registerLazyCallableModule('JSTimers', () => - require('./Timers/JSTimers'), -); -BatchedBridge.registerLazyCallableModule('HeapCapture', () => - require('../HeapCapture/HeapCapture'), -); -BatchedBridge.registerLazyCallableModule('SamplingProfiler', () => - require('../Performance/SamplingProfiler'), -); -BatchedBridge.registerLazyCallableModule('RCTLog', () => - require('../Utilities/RCTLog'), -); -BatchedBridge.registerLazyCallableModule('RCTDeviceEventEmitter', () => - require('../EventEmitter/RCTDeviceEventEmitter'), -); -BatchedBridge.registerLazyCallableModule('RCTNativeAppEventEmitter', () => - require('../EventEmitter/RCTNativeAppEventEmitter'), -); -BatchedBridge.registerLazyCallableModule('GlobalPerformanceLogger', () => - require('../Utilities/GlobalPerformanceLogger'), -); -BatchedBridge.registerLazyCallableModule('JSDevSupportModule', () => - require('../Utilities/JSDevSupportModule'), -); - -if (__DEV__ && !global.__RCTProfileIsProfiling) { - BatchedBridge.registerCallableModule( - 'HMRClient', - require('../Utilities/HMRClient'), +if (!global.RN$Bridgeless) { + /** + * Set up the BatchedBridge. This must be done after the other steps in + * InitializeCore to ensure that the JS environment has been initialized. + * You can use this module directly, or just require InitializeCore. + */ + const BatchedBridge = require('../BatchedBridge/BatchedBridge'); + BatchedBridge.registerLazyCallableModule('Systrace', () => + require('../Performance/Systrace'), ); + BatchedBridge.registerLazyCallableModule('JSTimers', () => + require('./Timers/JSTimers'), + ); + BatchedBridge.registerLazyCallableModule('HeapCapture', () => + require('../HeapCapture/HeapCapture'), + ); + BatchedBridge.registerLazyCallableModule('SamplingProfiler', () => + require('../Performance/SamplingProfiler'), + ); + BatchedBridge.registerLazyCallableModule('RCTLog', () => + require('../Utilities/RCTLog'), + ); + BatchedBridge.registerLazyCallableModule('RCTDeviceEventEmitter', () => + require('../EventEmitter/RCTDeviceEventEmitter'), + ); + BatchedBridge.registerLazyCallableModule('RCTNativeAppEventEmitter', () => + require('../EventEmitter/RCTNativeAppEventEmitter'), + ); + BatchedBridge.registerLazyCallableModule('GlobalPerformanceLogger', () => + require('../Utilities/GlobalPerformanceLogger'), + ); + BatchedBridge.registerLazyCallableModule('JSDevSupportModule', () => + require('../Utilities/JSDevSupportModule'), + ); + + if (__DEV__ && !global.__RCTProfileIsProfiling) { + BatchedBridge.registerCallableModule( + 'HMRClient', + require('../Utilities/HMRClient'), + ); + } }