From c19c6cef3fc64113e8c0795454798a15c5741383 Mon Sep 17 00:00:00 2001 From: Emily Janzer Date: Mon, 17 Jun 2019 15:08:21 -0700 Subject: [PATCH] Disable legacy native modules in bridgeless mode Summary: Requiring legacy native modules fails in bridgeless mode because they use the batched bridge, so we need to check for turbomodules first to avoid crashing. In D15703655 I reversed the order of this check for everyone, but this had some unintended side effects (everyone got turbomodules). This time I'm just using my flag to check for bridgeless mode so we can bail out of legacy native modules instead. Reviewed By: fkgozali Differential Revision: D15857106 fbshipit-source-id: 9d33161ae059e7a357f135c82b6865f4d2a57add --- Libraries/TurboModule/TurboModuleRegistry.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Libraries/TurboModule/TurboModuleRegistry.js b/Libraries/TurboModule/TurboModuleRegistry.js index e651581d19c..b3b1135f98b 100644 --- a/Libraries/TurboModule/TurboModuleRegistry.js +++ b/Libraries/TurboModule/TurboModuleRegistry.js @@ -17,10 +17,13 @@ import invariant from 'invariant'; const turboModuleProxy = global.__turboModuleProxy; export function get(name: string): ?T { - // Backward compatibility layer during migration. - const legacyModule = NativeModules[name]; - if (legacyModule != null) { - return ((legacyModule: any): T); + // Bridgeless mode requires TurboModules + if (!global.RN$Bridgeless) { + // Backward compatibility layer during migration. + const legacyModule = NativeModules[name]; + if (legacyModule != null) { + return ((legacyModule: any): T); + } } if (turboModuleProxy != null) {