From 5e212327177ad16b1101a7bc80b52d68bd7bfcf6 Mon Sep 17 00:00:00 2001 From: David Vacca Date: Wed, 23 Oct 2024 22:53:44 -0700 Subject: [PATCH] Assert enableBridgelessArchitecture is true when starting Bridgeless (#47145) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/47145 Staring Bridgeless without previously setting ReactNativeFeatureFlags.enableBridgelessArchitecture() is UB, we should assert enableBridgelessArchitecture is true when starting Bridgeless changelog: [internal] internal Reviewed By: NickGerleman Differential Revision: D64641081 fbshipit-source-id: d7964f8a9d5a2e6dad9d44b8fd5cd5a52d1b2cf4 --- .../com/facebook/react/runtime/ReactHostImpl.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java index a5732d3c893..b9fc10da9d0 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.java @@ -923,6 +923,17 @@ public class ReactHostImpl implements ReactHost { final String method = "getOrCreateStartTask()"; if (mStartTask == null) { log(method, "Schedule"); + Assertions.assertCondition( + ReactNativeFeatureFlags.enableBridgelessArchitecture(), + "enableBridgelessArchitecture FeatureFlag must be set to start ReactNative."); + + Assertions.assertCondition( + ReactNativeFeatureFlags.enableFabricRenderer(), + "enableFabricRenderer FeatureFlag must be set to start ReactNative."); + + Assertions.assertCondition( + ReactNativeFeatureFlags.useTurboModules(), + "useTurboModules FeatureFlag must be set to start ReactNative."); mStartTask = waitThenCallGetOrCreateReactInstanceTask() .continueWithTask(