Enable enableEffectEventMutationPhase everywhere (#37039)
Enable it first, will be removed later in https://github.com/react/react/pull/37013, once it gets to stable. See https://github.com/react/react/pull/35548 for context on the gated changes.
Ruslan Lesiutin committed
Jul 16, 2026 at 14:21 UTC
cec5a9bd9cb55ac20320ce188d6b127d3bbedc6b
9 files changed
+8
-10
packages/shared/ReactFeatureFlags.js
+1
-1
@@ -127,7 +127,7 @@ export const alwaysThrottleRetries: boolean = true;
127
128
// Gate whether useEffectEvent uses the mutation phase (true) or before-mutation
129
// phase (false) for updating event function references.
130
-export const enableEffectEventMutationPhase: boolean = false;
130
+export const enableEffectEventMutationPhase: boolean = true;
131
132
export const passChildrenWhenCloningPersistedNodes: boolean = false;
133
packages/shared/forks/ReactFeatureFlags.native-fb-dynamic.js
-1
@@ -23,6 +23,5 @@ export const passChildrenWhenCloningPersistedNodes = __VARIANT__;
23
export const enableFragmentRefs = __VARIANT__;
24
export const enableFragmentRefsScrollIntoView = __VARIANT__;
25
export const enableFragmentRefsInstanceHandles = __VARIANT__;
26
-export const enableEffectEventMutationPhase = __VARIANT__;
26
export const enableFragmentRefsTextNodes = __VARIANT__;
27
export const enableViewTransitionForPersistenceMode = __VARIANT__;
packages/shared/forks/ReactFeatureFlags.native-fb.js
+1
-1
@@ -20,7 +20,6 @@ const dynamicFlags: DynamicExportsType = dynamicFlagsUntyped as any;
20
// the exports object every time a flag is read.
21
export const {
22
alwaysThrottleRetries,
23
- enableEffectEventMutationPhase,
23
enableObjectFiber,
24
passChildrenWhenCloningPersistedNodes,
25
enableFragmentRefs,
@@ -43,6 +42,7 @@ export const enableAsyncDebugInfo: boolean = true;
42
export const enableAsyncIterableChildren: boolean = false;
43
export const enableCPUSuspense: boolean = true;
44
export const enableCreateEventHandleAPI: boolean = false;
45
+export const enableEffectEventMutationPhase: boolean = true;
46
export const enableMoveBefore: boolean = true;
47
export const enableFizzExternalRuntime: boolean = true;
48
export const enableInfiniteRenderLoopDetection: boolean = false;
packages/shared/forks/ReactFeatureFlags.native-oss.js
+1
-1
@@ -44,7 +44,7 @@ export const enablePerformanceIssueReporting: boolean = false;
44
export const enableSchedulingProfiler: boolean =
45
!enableComponentPerformanceTrack && __PROFILE__;
46
export const enableScopeAPI: boolean = false;
47
-export const enableEffectEventMutationPhase: boolean = false;
47
+export const enableEffectEventMutationPhase: boolean = true;
48
export const enableSuspenseAvoidThisFallback: boolean = false;
49
export const enableSuspenseCallback: boolean = false;
50
export const enableTaint: boolean = true;
packages/shared/forks/ReactFeatureFlags.test-renderer.js
+1
-1
@@ -54,7 +54,7 @@ export const disableClientCache: boolean = true;
54
export const enableInfiniteRenderLoopDetection: boolean = false;
55
export const enableInfiniteRenderLoopDetectionForceThrow: boolean = false;
56
57
-export const enableEffectEventMutationPhase: boolean = false;
57
+export const enableEffectEventMutationPhase: boolean = true;
58
59
export const enableYieldingBeforePassive: boolean = true;
60
packages/shared/forks/ReactFeatureFlags.test-renderer.native-fb.js
+1
-1
@@ -41,7 +41,7 @@ export const enableSchedulingProfiler = __PROFILE__;
41
export const enableComponentPerformanceTrack = false;
42
export const enablePerformanceIssueReporting = false;
43
export const enableScopeAPI = false;
44
-export const enableEffectEventMutationPhase = false;
44
+export const enableEffectEventMutationPhase = true;
45
export const enableSuspenseAvoidThisFallback = false;
46
export const enableSuspenseCallback = false;
47
export const enableTaint = true;
packages/shared/forks/ReactFeatureFlags.test-renderer.www.js
+1
-1
@@ -60,7 +60,7 @@ export const enableReactTestRendererWarning: boolean = false;
60
export const disableLegacyMode: boolean = true;
61
62
export const enableObjectFiber: boolean = false;
63
-export const enableEffectEventMutationPhase: boolean = false;
63
+export const enableEffectEventMutationPhase: boolean = true;
64
65
export const enableYieldingBeforePassive: boolean = false;
66
packages/shared/forks/ReactFeatureFlags.www-dynamic.js
-2
@@ -40,8 +40,6 @@ export const enableFragmentRefsTextNodes: boolean = __VARIANT__;
40
export const enableInternalInstanceMap: boolean = __VARIANT__;
41
export const enableParallelTransitions: boolean = __VARIANT__;
42
43
-export const enableEffectEventMutationPhase: boolean = __VARIANT__;
44
-
43
// TODO: These flags are hard-coded to the default values used in open source.
44
// Update the tests so that they pass in either mode, then set these
45
// to __VARIANT__.
packages/shared/forks/ReactFeatureFlags.www.js
+2
-1
@@ -18,7 +18,6 @@ export const {
18
alwaysThrottleRetries,
19
disableLegacyContextForFunctionComponents,
20
disableSchedulerTimeoutInWorkLoop,
21
- enableEffectEventMutationPhase,
21
enableInfiniteRenderLoopDetection,
22
enableInfiniteRenderLoopDetectionForceThrow,
23
enableNoCloningMemoCache,
@@ -81,6 +80,8 @@ export const disableCommentsAsDOMContainers: boolean = false;
80
81
export const enableCreateEventHandleAPI: boolean = true;
82
83
+export const enableEffectEventMutationPhase: boolean = true;
84
+
85
export const enableScopeAPI: boolean = true;
86
87
export const enableSuspenseCallback: boolean = true;