From b8da12e8f8e6a6b087f6531c1c791ab41e5273d4 Mon Sep 17 00:00:00 2001 From: Jan Kassens Date: Thu, 29 Feb 2024 13:19:12 -0800 Subject: [PATCH] Add dynamic flag for infinite loop detection on React Native FB (#28456) Add dynamic flag for infinite loop detection on React Native FB --- packages/shared/forks/ReactFeatureFlags.native-fb-dynamic.js | 1 + packages/shared/forks/ReactFeatureFlags.native-fb.js | 2 +- scripts/flow/xplat.js | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/shared/forks/ReactFeatureFlags.native-fb-dynamic.js b/packages/shared/forks/ReactFeatureFlags.native-fb-dynamic.js index d8228bc421487..294f5e515e76f 100644 --- a/packages/shared/forks/ReactFeatureFlags.native-fb-dynamic.js +++ b/packages/shared/forks/ReactFeatureFlags.native-fb-dynamic.js @@ -27,6 +27,7 @@ export const enableUseRefAccessWarning = __VARIANT__; export const passChildrenWhenCloningPersistedNodes = __VARIANT__; export const useMicrotasksForSchedulingInFabric = __VARIANT__; export const enableUnifiedSyncLane = __VARIANT__; +export const enableInfiniteRenderLoopDetection = __VARIANT__; // Flow magic to verify the exports of this file match the original version. ((((null: any): ExportsType): DynamicFlagsType): ExportsType); diff --git a/packages/shared/forks/ReactFeatureFlags.native-fb.js b/packages/shared/forks/ReactFeatureFlags.native-fb.js index afc64995ee2c0..67c33d1593310 100644 --- a/packages/shared/forks/ReactFeatureFlags.native-fb.js +++ b/packages/shared/forks/ReactFeatureFlags.native-fb.js @@ -25,6 +25,7 @@ export const { passChildrenWhenCloningPersistedNodes, useMicrotasksForSchedulingInFabric, enableUnifiedSyncLane, + enableInfiniteRenderLoopDetection, } = dynamicFlags; // The rest of the flags are static for better dead code elimination. @@ -96,7 +97,6 @@ export const disableClientCache = true; export const enableServerComponentKeys = true; export const enableServerComponentLogs = true; -export const enableInfiniteRenderLoopDetection = false; // TODO: Roll out with GK. Don't keep as dynamic flag for too long, though, // because JSX is an extremely hot path. diff --git a/scripts/flow/xplat.js b/scripts/flow/xplat.js index cc5bc16b82cc5..6185c71ba4707 100644 --- a/scripts/flow/xplat.js +++ b/scripts/flow/xplat.js @@ -15,4 +15,5 @@ declare module 'ReactNativeInternalFeatureFlags' { declare export var passChildrenWhenCloningPersistedNodes: boolean; declare export var useMicrotasksForSchedulingInFabric: boolean; declare export var enableUnifiedSyncLane: boolean; + declare export var enableInfiniteRenderLoopDetection: boolean; }