@samitouri / QOS-React-2 / commits / 706d95f486

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 }