Configure Dynamic Feature Flags for React Native (#28527)
## Summary This PR is a subset of https://github.com/facebook/react/pull/28425, which only includes the feature flags that will be configured as dynamic. The following list summarizes the feature flag changes: * RN FB * Change to Dynamic * consoleManagedByDevToolsDuringStrictMode * enableAsyncActions * enableDeferRootSchedulingToMicrotask * enableRenderableContext * useModernStrictMode ## How did you test this change? Ran the following successfully: ``` $ yarn test $ yarn flow native $ yarn flow fabric ```
Timothy Yung committed
Mar 8, 2024 at 16:14 UTC
706d95f486fbdec35b771ea4aaf3e78feb907249
3 files changed
+18
-11
packages/shared/forks/ReactFeatureFlags.native-fb-dynamic.js
+6
-2
@@ -21,13 +21,17 @@ import typeof * as DynamicFlagsType from 'ReactNativeInternalFeatureFlags';
21
// update the test configuration.
22
23
export const alwaysThrottleRetries = __VARIANT__;
24
+export const consoleManagedByDevToolsDuringStrictMode = __VARIANT__;
25
+export const enableAsyncActions = __VARIANT__;
26
export const enableComponentStackLocations = __VARIANT__;
27
export const enableDeferRootSchedulingToMicrotask = __VARIANT__;
28
+export const enableInfiniteRenderLoopDetection = __VARIANT__;
29
+export const enableRenderableContext = __VARIANT__;
30
+export const enableUnifiedSyncLane = __VARIANT__;
31
export const enableUseRefAccessWarning = __VARIANT__;
32
export const passChildrenWhenCloningPersistedNodes = __VARIANT__;
33
export const useMicrotasksForSchedulingInFabric = __VARIANT__;
29
-export const enableUnifiedSyncLane = __VARIANT__;
30
-export const enableInfiniteRenderLoopDetection = __VARIANT__;
34
+export const useModernStrictMode = __VARIANT__;
35
36
// Flow magic to verify the exports of this file match the original version.
37
((((null: any): ExportsType): DynamicFlagsType): ExportsType);
packages/shared/forks/ReactFeatureFlags.native-fb.js
+6
-7
@@ -19,13 +19,17 @@ import * as dynamicFlags from 'ReactNativeInternalFeatureFlags';
19
// the exports object every time a flag is read.
20
export const {
21
alwaysThrottleRetries,
22
+ consoleManagedByDevToolsDuringStrictMode,
23
+ enableAsyncActions,
24
enableComponentStackLocations,
25
enableDeferRootSchedulingToMicrotask,
26
+ enableInfiniteRenderLoopDetection,
27
+ enableRenderableContext,
28
+ enableUnifiedSyncLane,
29
enableUseRefAccessWarning,
30
passChildrenWhenCloningPersistedNodes,
31
useMicrotasksForSchedulingInFabric,
27
- enableUnifiedSyncLane,
28
- enableInfiniteRenderLoopDetection,
32
+ useModernStrictMode,
33
} = dynamicFlags;
34
35
// The rest of the flags are static for better dead code elimination.
@@ -67,7 +71,6 @@ export const enableClientRenderFallbackOnTextMismatch = true;
71
export const enableLegacyFBSupport = false;
72
export const enableFilterEmptyStringAttributesDOM = true;
73
export const enableGetInspectorDataForInstanceInProduction = true;
70
-export const enableRenderableContext = false;
74
75
export const enableRetryLaneExpiration = false;
76
export const retryLaneExpirationMs = 5000;
@@ -81,17 +84,13 @@ export const forceConcurrentByDefaultForTesting = false;
84
export const allowConcurrentByDefault = false;
85
export const enableCustomElementPropertySupport = true;
86
84
-export const consoleManagedByDevToolsDuringStrictMode = false;
85
-
87
export const enableTransitionTracing = false;
88
89
export const enableFloat = true;
90
90
-export const useModernStrictMode = false;
91
export const enableDO_NOT_USE_disableStrictPassiveEffect = false;
92
export const enableFizzExternalRuntime = true;
93
94
-export const enableAsyncActions = false;
94
export const enableUseDeferredValueInitialArg = true;
95
export const disableClientCache = true;
96
scripts/flow/xplat.js
+6
-2
@@ -9,11 +9,15 @@
9
10
declare module 'ReactNativeInternalFeatureFlags' {
11
declare export var alwaysThrottleRetries: boolean;
12
+ declare export var consoleManagedByDevToolsDuringStrictMode: boolean;
13
+ declare export var enableAsyncActions: boolean;
14
declare export var enableComponentStackLocations: boolean;
15
declare export var enableDeferRootSchedulingToMicrotask: boolean;
16
+ declare export var enableInfiniteRenderLoopDetection: boolean;
17
+ declare export var enableRenderableContext: boolean;
18
+ declare export var enableUnifiedSyncLane: boolean;
19
declare export var enableUseRefAccessWarning: boolean;
20
declare export var passChildrenWhenCloningPersistedNodes: boolean;
21
declare export var useMicrotasksForSchedulingInFabric: boolean;
17
- declare export var enableUnifiedSyncLane: boolean;
18
- declare export var enableInfiniteRenderLoopDetection: boolean;
22
+ declare export var useModernStrictMode: boolean;
23
}