Prepare Feature Flags for React Native 0.75 (#29903)
## Summary Configures the React Native open source feature flags in preparation for React Native 0.75, which will be upgraded to React 19. ## How did you test this change? ``` $ yarn test $ yarn flow fabric ```
Timothy Yung committed
Jun 14, 2024 at 17:09 UTC
f14d7f0d2597ea25da12bcf97772e8803f2a394c
3 files changed
+150
-196
packages/shared/forks/ReactFeatureFlags.native-fb.js
+45
-54
@@ -31,75 +31,66 @@ export const {
31
} = dynamicFlags;
32
33
// The rest of the flags are static for better dead code elimination.
34
+export const allowConcurrentByDefault = false;
35
+export const debugRenderPhaseSideEffectsForStrictMode = __DEV__;
36
+export const disableClientCache = true;
37
+export const disableCommentsAsDOMContainers = true;
38
+export const disableIEWorkarounds = true;
39
+export const disableInputAttributeSyncing = false;
40
+export const disableLegacyContext = false;
41
+export const disableLegacyMode = false;
42
+export const disableSchedulerTimeoutInWorkLoop = false;
43
+export const disableStringRefs = true;
44
+export const disableTextareaChildren = false;
45
export const enableAsyncActions = true;
35
-export const enableDebugTracing = false;
46
export const enableAsyncDebugInfo = false;
37
-export const enableRenderableContext = true;
38
-export const enableSchedulingProfiler = __PROFILE__;
39
-export const enableProfilerTimer = __PROFILE__;
40
-export const enableProfilerCommitHooks = __PROFILE__;
41
-export const enableProfilerNestedUpdatePhase = __PROFILE__;
42
-export const enableUpdaterTracking = __PROFILE__;
43
-export const enableUnifiedSyncLane = true;
47
+export const enableAsyncIterableChildren = false;
48
+export const enableBinaryFlight = true;
49
export const enableCache = true;
50
export const enableComponentStackLocations = true;
46
-export const enableLegacyCache = false;
47
-export const enableBinaryFlight = true;
51
+export const enableCPUSuspense = true;
52
+export const enableCreateEventHandleAPI = false;
53
+export const enableDebugTracing = false;
54
+export const enableDO_NOT_USE_disableStrictPassiveEffect = false;
55
+export const enableFilterEmptyStringAttributesDOM = true;
56
+export const enableFizzExternalRuntime = true;
57
export const enableFlightReadableStream = true;
49
-export const enableAsyncIterableChildren = false;
50
-export const enableTaint = true;
58
+export const enableGetInspectorDataForInstanceInProduction = true;
59
+export const enableLazyContextPropagation = false;
60
+export const enableLegacyCache = false;
61
+export const enableLegacyFBSupport = false;
62
+export const enableLegacyHidden = false;
63
+export const enableNoCloningMemoCache = false;
64
+export const enableOwnerStacks = false;
65
export const enablePostpone = false;
52
-export const debugRenderPhaseSideEffectsForStrictMode = __DEV__;
53
-export const disableCommentsAsDOMContainers = true;
54
-export const disableInputAttributeSyncing = false;
55
-export const disableIEWorkarounds = true;
66
+export const enableProfilerCommitHooks = __PROFILE__;
67
+export const enableProfilerNestedUpdatePhase = __PROFILE__;
68
+export const enableProfilerTimer = __PROFILE__;
69
+export const enableReactTestRendererWarning = false;
70
+export const enableRefAsProp = true;
71
+export const enableRenderableContext = true;
72
+export const enableRetryLaneExpiration = false;
73
+export const enableSchedulingProfiler = __PROFILE__;
74
export const enableScopeAPI = false;
57
-export const enableCreateEventHandleAPI = false;
58
-export const enableSuspenseCallback = false;
59
-export const disableLegacyContext = false;
60
-export const enableTrustedTypesIntegration = false;
61
-export const disableTextareaChildren = false;
75
+export const enableServerComponentLogs = true;
76
export const enableSuspenseAvoidThisFallback = false;
77
export const enableSuspenseAvoidThisFallbackFizz = false;
64
-export const enableCPUSuspense = true;
65
-export const enableUseMemoCacheHook = true;
66
-export const enableNoCloningMemoCache = false;
78
+export const enableSuspenseCallback = false;
79
+export const enableTaint = true;
80
+export const enableTransitionTracing = false;
81
+export const enableTrustedTypesIntegration = false;
82
+export const enableUnifiedSyncLane = true;
83
+export const enableUpdaterTracking = __PROFILE__;
84
+export const enableUseDeferredValueInitialArg = true;
85
export const enableUseEffectEventHook = false;
86
+export const enableUseMemoCacheHook = true;
87
export const favorSafetyOverHydrationPerf = true;
69
-export const enableLegacyFBSupport = false;
70
-export const enableFilterEmptyStringAttributesDOM = true;
71
-export const enableGetInspectorDataForInstanceInProduction = true;
72
-export const useModernStrictMode = true;
73
-
88
+export const forceConcurrentByDefaultForTesting = false;
89
export const renameElementSymbol = false;
75
-
76
-export const enableRetryLaneExpiration = false;
90
export const retryLaneExpirationMs = 5000;
91
export const syncLaneExpirationMs = 250;
92
export const transitionLaneExpirationMs = 5000;
80
-
81
-export const disableSchedulerTimeoutInWorkLoop = false;
82
-export const enableLazyContextPropagation = false;
83
-export const enableLegacyHidden = false;
84
-export const forceConcurrentByDefaultForTesting = false;
85
-export const allowConcurrentByDefault = false;
86
-
87
-export const enableTransitionTracing = false;
88
-
89
-export const enableDO_NOT_USE_disableStrictPassiveEffect = false;
90
-export const enableFizzExternalRuntime = true;
91
-
92
-export const enableUseDeferredValueInitialArg = true;
93
-export const disableClientCache = true;
94
-
95
-export const enableServerComponentLogs = true;
96
-
97
-export const enableRefAsProp = true;
98
-export const disableStringRefs = true;
99
-
100
-export const enableReactTestRendererWarning = false;
101
-export const disableLegacyMode = false;
102
-export const enableOwnerStacks = false;
93
+export const useModernStrictMode = true;
94
95
// Flow magic to verify the exports of this file match the original version.
96
((((null: any): ExportsType): FeatureFlagsType): ExportsType);
packages/shared/forks/ReactFeatureFlags.native-oss.js
+52
-75
@@ -12,100 +12,77 @@ import typeof * as ExportsType from './ReactFeatureFlags.native-oss';
12
13
// TODO: Align these flags with canary and delete this file once RN ships from Canary.
14
15
-// -----------------------------------------------------------------------------
16
-// TODO for next React Native major.
17
-//
18
-// Alias __TODO_NEXT_RN_MAJOR__ to false for easier skimming.
19
-// -----------------------------------------------------------------------------
20
-const __TODO_NEXT_RN_MAJOR__ = false;
21
-export const enableRefAsProp = __TODO_NEXT_RN_MAJOR__;
22
-export const disableStringRefs = __TODO_NEXT_RN_MAJOR__;
23
-export const enableFastJSX = __TODO_NEXT_RN_MAJOR__;
24
-export const disableLegacyMode = __TODO_NEXT_RN_MAJOR__;
25
-export const useModernStrictMode = __TODO_NEXT_RN_MAJOR__;
26
-export const enableReactTestRendererWarning = __TODO_NEXT_RN_MAJOR__;
27
-export const enableAsyncActions = __TODO_NEXT_RN_MAJOR__;
28
-export const consoleManagedByDevToolsDuringStrictMode = __TODO_NEXT_RN_MAJOR__;
29
-export const enableDeferRootSchedulingToMicrotask = __TODO_NEXT_RN_MAJOR__;
30
-export const alwaysThrottleRetries = __TODO_NEXT_RN_MAJOR__;
31
-export const enableInfiniteRenderLoopDetection = __TODO_NEXT_RN_MAJOR__;
32
-export const enableComponentStackLocations = __TODO_NEXT_RN_MAJOR__;
33
-
34
-// -----------------------------------------------------------------------------
35
-// These are ready to flip after the next React npm release (or RN switches to
36
-// Canary, but can't flip before then because of react/renderer mismatches.
37
-// -----------------------------------------------------------------------------
38
-export const enableCache = __TODO_NEXT_RN_MAJOR__;
39
-export const enableRenderableContext = __TODO_NEXT_RN_MAJOR__;
40
-export const disableDefaultPropsExceptForClasses = __TODO_NEXT_RN_MAJOR__;
41
-
42
-// -----------------------------------------------------------------------------
43
-// Already enabled for next React Native major.
44
-// Hardcode these to true after the next RN major.
45
-//
46
-// Alias __NEXT_RN_MAJOR__ to true for easier skimming.
47
-// -----------------------------------------------------------------------------
48
-const __NEXT_RN_MAJOR__ = true;
49
-export const disableClientCache = __NEXT_RN_MAJOR__;
50
-export const disableLegacyContext = __NEXT_RN_MAJOR__;
51
-export const enableTaint = __NEXT_RN_MAJOR__;
52
-export const enableUnifiedSyncLane = __NEXT_RN_MAJOR__;
53
-export const enableFizzExternalRuntime = __NEXT_RN_MAJOR__; // DOM-only
54
-export const enableBinaryFlight = true;
55
-export const enableFlightReadableStream = true;
56
-export const enableServerComponentLogs = __NEXT_RN_MAJOR__;
57
-
15
// DEV-only but enabled in the next RN Major.
16
// Not supported by flag script to avoid the special case.
17
export const debugRenderPhaseSideEffectsForStrictMode = __DEV__;
18
62
-// TODO: decide on React 19
63
-export const enableUseMemoCacheHook = true;
64
-export const enableNoCloningMemoCache = false;
65
-export const enableUseDeferredValueInitialArg = __EXPERIMENTAL__;
66
-
19
// -----------------------------------------------------------------------------
20
// All other flags
21
// -----------------------------------------------------------------------------
22
+export const allowConcurrentByDefault = false;
23
+export const alwaysThrottleRetries = false;
24
+export const consoleManagedByDevToolsDuringStrictMode = true;
25
+export const disableClientCache = true;
26
+export const disableCommentsAsDOMContainers = true;
27
+export const disableDefaultPropsExceptForClasses = true;
28
+export const disableIEWorkarounds = true;
29
+export const disableInputAttributeSyncing = false;
30
+export const disableLegacyContext = true;
31
+export const disableLegacyMode = false;
32
+export const disableSchedulerTimeoutInWorkLoop = false;
33
+export const disableStringRefs = true;
34
+export const disableTextareaChildren = false;
35
+export const enableAddPropertiesFastPath = false;
36
+export const enableAsyncActions = true;
37
+export const enableAsyncDebugInfo = false;
38
+export const enableAsyncIterableChildren = false;
39
+export const enableBinaryFlight = true;
40
+export const enableCache = true;
41
+export const enableComponentStackLocations = true;
42
export const enableCPUSuspense = false;
43
+export const enableCreateEventHandleAPI = false;
44
export const enableDebugTracing = false;
72
-export const enableAsyncDebugInfo = false;
73
-export const enableSchedulingProfiler = __PROFILE__;
45
+export const enableDeferRootSchedulingToMicrotask = true;
46
+export const enableDO_NOT_USE_disableStrictPassiveEffect = false;
47
+export const enableFastJSX = true;
48
+export const enableFilterEmptyStringAttributesDOM = true;
49
+export const enableFizzExternalRuntime = true;
50
+export const enableFlightReadableStream = true;
51
+export const enableGetInspectorDataForInstanceInProduction = false;
52
+export const enableInfiniteRenderLoopDetection = true;
53
+export const enableLazyContextPropagation = false;
54
export const enableLegacyCache = false;
55
+export const enableLegacyFBSupport = false;
56
+export const enableLegacyHidden = false;
57
+export const enableNoCloningMemoCache = false;
58
+export const enableOwnerStacks = __EXPERIMENTAL__;
59
export const enablePostpone = false;
76
-export const disableCommentsAsDOMContainers = true;
77
-export const disableInputAttributeSyncing = false;
78
-export const disableIEWorkarounds = true;
60
+export const enableReactTestRendererWarning = false;
61
+export const enableRefAsProp = true;
62
+export const enableRenderableContext = true;
63
+export const enableRetryLaneExpiration = false;
64
+export const enableSchedulingProfiler = __PROFILE__;
65
export const enableScopeAPI = false;
80
-export const enableCreateEventHandleAPI = false;
81
-export const enableSuspenseCallback = false;
82
-export const enableTrustedTypesIntegration = false;
83
-export const disableTextareaChildren = false;
66
+export const enableServerComponentLogs = true;
67
+export const enableShallowPropDiffing = false;
68
export const enableSuspenseAvoidThisFallback = false;
69
export const enableSuspenseAvoidThisFallbackFizz = false;
70
+export const enableSuspenseCallback = false;
71
+export const enableTaint = true;
72
+export const enableTransitionTracing = false;
73
+export const enableTrustedTypesIntegration = false;
74
+export const enableUnifiedSyncLane = true;
75
+export const enableUseDeferredValueInitialArg = true;
76
export const enableUseEffectEventHook = false;
77
+export const enableUseMemoCacheHook = true;
78
export const favorSafetyOverHydrationPerf = true;
88
-export const enableLegacyFBSupport = false;
89
-export const enableFilterEmptyStringAttributesDOM = true;
90
-export const enableGetInspectorDataForInstanceInProduction = false;
91
-export const enableRetryLaneExpiration = false;
92
-export const retryLaneExpirationMs = 5000;
93
-export const syncLaneExpirationMs = 250;
94
-export const transitionLaneExpirationMs = 5000;
95
-export const disableSchedulerTimeoutInWorkLoop = false;
96
-export const enableLazyContextPropagation = false;
97
-export const enableLegacyHidden = false;
79
export const forceConcurrentByDefaultForTesting = false;
99
-export const allowConcurrentByDefault = false;
100
-export const enableTransitionTracing = false;
101
-export const enableDO_NOT_USE_disableStrictPassiveEffect = false;
80
export const passChildrenWhenCloningPersistedNodes = false;
103
-export const enableAsyncIterableChildren = false;
104
-export const enableAddPropertiesFastPath = false;
105
-export const enableShallowPropDiffing = false;
81
export const renameElementSymbol = true;
107
-
108
-export const enableOwnerStacks = __EXPERIMENTAL__;
82
+export const retryLaneExpirationMs = 5000;
83
+export const syncLaneExpirationMs = 250;
84
+export const transitionLaneExpirationMs = 5000;
85
+export const useModernStrictMode = true;
86
87
// Profiling Only
88
export const enableProfilerTimer = __PROFILE__;
packages/shared/forks/ReactFeatureFlags.test-renderer.native-fb.js
+53
-67
@@ -10,89 +10,75 @@
10
import typeof * as FeatureFlagsType from 'shared/ReactFeatureFlags';
11
import typeof * as ExportsType from './ReactFeatureFlags.test-renderer';
12
13
+export const allowConcurrentByDefault = true;
14
+export const alwaysThrottleRetries = false;
15
+export const consoleManagedByDevToolsDuringStrictMode = false;
16
export const debugRenderPhaseSideEffectsForStrictMode = false;
14
-export const enableDebugTracing = false;
15
-export const enableAsyncDebugInfo = false;
16
-export const enableSchedulingProfiler = __PROFILE__;
17
-export const enableProfilerTimer = __PROFILE__;
18
-export const enableProfilerCommitHooks = __PROFILE__;
19
-export const enableProfilerNestedUpdatePhase = __PROFILE__;
20
-export const enableUpdaterTracking = false;
21
-export const enableCache = true;
22
-export const enableLegacyCache = false;
23
-export const enableBinaryFlight = true;
24
-export const enableFlightReadableStream = true;
25
-export const enableAsyncIterableChildren = false;
26
-export const enableTaint = true;
27
-export const enablePostpone = false;
17
+export const disableClientCache = true;
18
export const disableCommentsAsDOMContainers = true;
29
-export const disableInputAttributeSyncing = false;
19
+export const disableDefaultPropsExceptForClasses = false;
20
export const disableIEWorkarounds = true;
31
-export const enableScopeAPI = false;
32
-export const enableCreateEventHandleAPI = false;
33
-export const enableSuspenseCallback = false;
21
+export const disableInputAttributeSyncing = false;
22
export const disableLegacyContext = false;
35
-export const enableTrustedTypesIntegration = false;
23
+export const disableLegacyMode = false;
24
+export const disableSchedulerTimeoutInWorkLoop = false;
25
+export const disableStringRefs = true;
26
export const disableTextareaChildren = false;
27
+export const enableAddPropertiesFastPath = false;
28
+export const enableAsyncActions = true;
29
+export const enableAsyncDebugInfo = false;
30
+export const enableAsyncIterableChildren = false;
31
+export const enableBinaryFlight = true;
32
+export const enableCache = true;
33
export const enableComponentStackLocations = true;
38
-export const enableLegacyFBSupport = false;
34
+export const enableCPUSuspense = true;
35
+export const enableCreateEventHandleAPI = false;
36
+export const enableDebugTracing = false;
37
+export const enableDeferRootSchedulingToMicrotask = false;
38
+export const enableDO_NOT_USE_disableStrictPassiveEffect = false;
39
+export const enableFastJSX = true;
40
export const enableFilterEmptyStringAttributesDOM = true;
41
+export const enableFizzExternalRuntime = true;
42
+export const enableFlightReadableStream = true;
43
export const enableGetInspectorDataForInstanceInProduction = false;
44
+export const enableInfiniteRenderLoopDetection = false;
45
+export const enableLazyContextPropagation = false;
46
+export const enableLegacyCache = false;
47
+export const enableLegacyFBSupport = false;
48
+export const enableLegacyHidden = false;
49
+export const enableNoCloningMemoCache = false;
50
+export const enableOwnerStacks = false;
51
+export const enablePostpone = false;
52
+export const enableProfilerCommitHooks = __PROFILE__;
53
+export const enableProfilerNestedUpdatePhase = __PROFILE__;
54
+export const enableProfilerTimer = __PROFILE__;
55
+export const enableReactTestRendererWarning = false;
56
+export const enableRefAsProp = true;
57
+export const enableRenderableContext = true;
58
+export const enableRetryLaneExpiration = false;
59
+export const enableSchedulingProfiler = __PROFILE__;
60
+export const enableScopeAPI = false;
61
+export const enableServerComponentLogs = true;
62
+export const enableShallowPropDiffing = false;
63
export const enableSuspenseAvoidThisFallback = false;
64
export const enableSuspenseAvoidThisFallbackFizz = false;
43
-export const enableCPUSuspense = true;
44
-export const enableUseMemoCacheHook = true;
45
-export const enableNoCloningMemoCache = false;
65
+export const enableSuspenseCallback = false;
66
+export const enableTaint = true;
67
+export const enableTransitionTracing = false;
68
+export const enableTrustedTypesIntegration = false;
69
+export const enableUnifiedSyncLane = true;
70
+export const enableUpdaterTracking = false;
71
+export const enableUseDeferredValueInitialArg = __EXPERIMENTAL__;
72
export const enableUseEffectEventHook = false;
73
+export const enableUseMemoCacheHook = true;
74
export const favorSafetyOverHydrationPerf = true;
48
-export const enableInfiniteRenderLoopDetection = false;
49
-export const enableRenderableContext = true;
50
-
51
-export const enableRetryLaneExpiration = false;
75
+export const forceConcurrentByDefaultForTesting = false;
76
+export const passChildrenWhenCloningPersistedNodes = false;
77
+export const renameElementSymbol = false;
78
export const retryLaneExpirationMs = 5000;
79
export const syncLaneExpirationMs = 250;
80
export const transitionLaneExpirationMs = 5000;
55
-
56
-export const disableSchedulerTimeoutInWorkLoop = false;
57
-export const enableLazyContextPropagation = false;
58
-export const enableLegacyHidden = false;
59
-export const forceConcurrentByDefaultForTesting = false;
60
-export const enableUnifiedSyncLane = true;
61
-export const allowConcurrentByDefault = true;
62
-
63
-export const consoleManagedByDevToolsDuringStrictMode = false;
64
-
65
-export const enableTransitionTracing = false;
66
-
81
export const useModernStrictMode = true;
68
-export const enableDO_NOT_USE_disableStrictPassiveEffect = false;
69
-export const enableFizzExternalRuntime = true;
70
-export const enableDeferRootSchedulingToMicrotask = false;
71
-
72
-export const enableAsyncActions = true;
73
-
74
-export const alwaysThrottleRetries = false;
75
-
76
-export const passChildrenWhenCloningPersistedNodes = false;
77
-export const enableUseDeferredValueInitialArg = __EXPERIMENTAL__;
78
-export const disableClientCache = true;
79
-
80
-export const enableServerComponentLogs = true;
81
-
82
-export const enableRefAsProp = true;
83
-export const disableStringRefs = true;
84
-export const enableFastJSX = true;
85
-
86
-export const enableReactTestRendererWarning = false;
87
-export const disableLegacyMode = false;
88
-
89
-export const disableDefaultPropsExceptForClasses = false;
90
-export const enableAddPropertiesFastPath = false;
91
-
92
-export const renameElementSymbol = false;
93
-
94
-export const enableOwnerStacks = false;
95
-export const enableShallowPropDiffing = false;
82
83
// Flow magic to verify the exports of this file match the original version.
84
((((null: any): ExportsType): FeatureFlagsType): ExportsType);