Remove createRootStrictEffectsByDefault flag (#28102)
There's no need to separate strict mode from strict effects mode any more. I didn't clean up the `StrictEffectMode` fiber flag, because it's used to prevent strict effects in legacy mode. I could replace those checks with `LegacyMode` checks, but when we remove legacy mode, we can remove that flag and condense them into one StrictMode flag away.
Ricky committed
Feb 1, 2024 at 14:54 UTC
3d1da1f9ab7d54984c096e6a04c8729f3a50fd8a
12 files changed
+248
-118
packages/react-dom/src/__tests__/ReactDOMServerPartialHydration-test.internal.js
+1
-8
@@ -776,14 +776,7 @@ describe('ReactDOMServerPartialHydration', () => {
776
const span2 = container.getElementsByTagName('span')[0];
777
// This is a new node.
778
expect(span).not.toBe(span2);
779
-
780
- if (gate(flags => flags.dfsEffectsRefactor)) {
781
- // The effects list refactor causes this to be null because the Suspense Activity's child
782
- // is null. However, since we can't hydrate Suspense in legacy this change in behavior is ok
783
- expect(ref.current).toBe(null);
784
- } else {
785
- expect(ref.current).toBe(span2);
786
- }
779
+ expect(ref.current).toBe(null);
780
781
// Resolving the promise should render the final content.
782
suspend = false;
packages/react-reconciler/src/ReactFiber.js
+1
-2
@@ -28,7 +28,6 @@ import {
28
isHostSingletonType,
29
} from './ReactFiberConfig';
30
import {
31
- createRootStrictEffectsByDefault,
31
enableCache,
32
enableProfilerTimer,
33
enableScopeAPI,
@@ -456,7 +455,7 @@ export function createHostRootFiber(
455
let mode;
456
if (tag === ConcurrentRoot) {
457
mode = ConcurrentMode;
459
- if (isStrictMode === true || createRootStrictEffectsByDefault) {
458
+ if (isStrictMode === true) {
459
mode |= StrictLegacyMode | StrictEffectsMode;
460
}
461
if (
packages/react-reconciler/src/__tests__/StrictEffectsMode-test.js
+146
-60
@@ -27,15 +27,6 @@ describe('StrictEffectsMode', () => {
27
assertLog = InternalTestUtils.assertLog;
28
});
29
30
- function supportsDoubleInvokeEffects() {
31
- return gate(
32
- flags =>
33
- flags.build === 'development' &&
34
- flags.createRootStrictEffectsByDefault &&
35
- flags.dfsEffectsRefactor,
36
- );
37
- }
38
-
30
it('should not double invoke effects in legacy mode', async () => {
31
function App({text}) {
32
React.useEffect(() => {
@@ -52,7 +43,11 @@ describe('StrictEffectsMode', () => {
43
}
44
45
await act(() => {
55
- ReactTestRenderer.create(<App text={'mount'} />);
46
+ ReactTestRenderer.create(
47
+ <React.StrictMode>
48
+ <App text={'mount'} />
49
+ </React.StrictMode>,
50
+ );
51
});
52
53
assertLog(['useLayoutEffect mount', 'useEffect mount']);
@@ -75,12 +70,17 @@ describe('StrictEffectsMode', () => {
70
71
let renderer;
72
await act(() => {
78
- renderer = ReactTestRenderer.create(<App text={'mount'} />, {
79
- isConcurrent: true,
80
- });
73
+ renderer = ReactTestRenderer.create(
74
+ <React.StrictMode>
75
+ <App text={'mount'} />
76
+ </React.StrictMode>,
77
+ {
78
+ isConcurrent: true,
79
+ },
80
+ );
81
});
82
83
- if (supportsDoubleInvokeEffects()) {
83
+ if (__DEV__) {
84
assertLog([
85
'useLayoutEffect mount',
86
'useEffect mount',
@@ -94,7 +94,11 @@ describe('StrictEffectsMode', () => {
94
}
95
96
await act(() => {
97
- renderer.update(<App text={'update'} />);
97
+ renderer.update(
98
+ <React.StrictMode>
99
+ <App text={'update'} />
100
+ </React.StrictMode>,
101
+ );
102
});
103
104
assertLog([
@@ -128,12 +132,17 @@ describe('StrictEffectsMode', () => {
132
133
let renderer;
134
await act(() => {
131
- renderer = ReactTestRenderer.create(<App text={'mount'} />, {
132
- isConcurrent: true,
133
- });
135
+ renderer = ReactTestRenderer.create(
136
+ <React.StrictMode>
137
+ <App text={'mount'} />
138
+ </React.StrictMode>,
139
+ {
140
+ isConcurrent: true,
141
+ },
142
+ );
143
});
144
136
- if (supportsDoubleInvokeEffects()) {
145
+ if (__DEV__) {
146
assertLog([
147
'useEffect One mount',
148
'useEffect Two mount',
@@ -147,7 +156,11 @@ describe('StrictEffectsMode', () => {
156
}
157
158
await act(() => {
150
- renderer.update(<App text={'update'} />);
159
+ renderer.update(
160
+ <React.StrictMode>
161
+ <App text={'update'} />
162
+ </React.StrictMode>,
163
+ );
164
});
165
166
assertLog([
@@ -181,12 +194,17 @@ describe('StrictEffectsMode', () => {
194
195
let renderer;
196
await act(() => {
184
- renderer = ReactTestRenderer.create(<App text={'mount'} />, {
185
- isConcurrent: true,
186
- });
197
+ renderer = ReactTestRenderer.create(
198
+ <React.StrictMode>
199
+ <App text={'mount'} />
200
+ </React.StrictMode>,
201
+ {
202
+ isConcurrent: true,
203
+ },
204
+ );
205
});
206
189
- if (supportsDoubleInvokeEffects()) {
207
+ if (__DEV__) {
208
assertLog([
209
'useLayoutEffect One mount',
210
'useLayoutEffect Two mount',
@@ -200,7 +218,11 @@ describe('StrictEffectsMode', () => {
218
}
219
220
await act(() => {
203
- renderer.update(<App text={'update'} />);
221
+ renderer.update(
222
+ <React.StrictMode>
223
+ <App text={'update'} />
224
+ </React.StrictMode>,
225
+ );
226
});
227
228
assertLog([
@@ -232,12 +254,17 @@ describe('StrictEffectsMode', () => {
254
255
let renderer;
256
await act(() => {
235
- renderer = ReactTestRenderer.create(<App text={'mount'} />, {
236
- isConcurrent: true,
237
- });
257
+ renderer = ReactTestRenderer.create(
258
+ <React.StrictMode>
259
+ <App text={'mount'} />
260
+ </React.StrictMode>,
261
+ {
262
+ isConcurrent: true,
263
+ },
264
+ );
265
});
266
240
- if (supportsDoubleInvokeEffects()) {
267
+ if (__DEV__) {
268
assertLog([
269
'useLayoutEffect mount',
270
'useEffect mount',
@@ -249,7 +276,11 @@ describe('StrictEffectsMode', () => {
276
}
277
278
await act(() => {
252
- renderer.update(<App text={'update'} />);
279
+ renderer.update(
280
+ <React.StrictMode>
281
+ <App text={'update'} />
282
+ </React.StrictMode>,
283
+ );
284
});
285
286
assertLog(['useLayoutEffect mount', 'useEffect mount']);
@@ -286,10 +317,15 @@ describe('StrictEffectsMode', () => {
317
}
318
319
await act(() => {
289
- ReactTestRenderer.create(<App />, {isConcurrent: true});
320
+ ReactTestRenderer.create(
321
+ <React.StrictMode>
322
+ <App />
323
+ </React.StrictMode>,
324
+ {isConcurrent: true},
325
+ );
326
});
327
292
- if (supportsDoubleInvokeEffects()) {
328
+ if (__DEV__) {
329
assertLog([
330
'componentDidMount',
331
'componentWillUnmount',
@@ -321,12 +357,17 @@ describe('StrictEffectsMode', () => {
357
358
let renderer;
359
await act(() => {
324
- renderer = ReactTestRenderer.create(<App text={'mount'} />, {
325
- isConcurrent: true,
326
- });
360
+ renderer = ReactTestRenderer.create(
361
+ <React.StrictMode>
362
+ <App text={'mount'} />
363
+ </React.StrictMode>,
364
+ {
365
+ isConcurrent: true,
366
+ },
367
+ );
368
});
369
329
- if (supportsDoubleInvokeEffects()) {
370
+ if (__DEV__) {
371
assertLog([
372
'componentDidMount',
373
'componentWillUnmount',
@@ -337,7 +378,11 @@ describe('StrictEffectsMode', () => {
378
}
379
380
await act(() => {
340
- renderer.update(<App text={'update'} />);
381
+ renderer.update(
382
+ <React.StrictMode>
383
+ <App text={'update'} />
384
+ </React.StrictMode>,
385
+ );
386
});
387
388
assertLog(['componentDidUpdate']);
@@ -366,19 +411,28 @@ describe('StrictEffectsMode', () => {
411
412
let renderer;
413
await act(() => {
369
- renderer = ReactTestRenderer.create(<App text={'mount'} />, {
370
- isConcurrent: true,
371
- });
414
+ renderer = ReactTestRenderer.create(
415
+ <React.StrictMode>
416
+ <App text={'mount'} />
417
+ </React.StrictMode>,
418
+ {
419
+ isConcurrent: true,
420
+ },
421
+ );
422
});
423
374
- if (supportsDoubleInvokeEffects()) {
424
+ if (__DEV__) {
425
assertLog(['componentWillUnmount']);
426
} else {
427
assertLog([]);
428
}
429
430
await act(() => {
381
- renderer.update(<App text={'update'} />);
431
+ renderer.update(
432
+ <React.StrictMode>
433
+ <App text={'update'} />
434
+ </React.StrictMode>,
435
+ );
436
});
437
438
assertLog(['componentDidUpdate']);
@@ -410,7 +464,11 @@ describe('StrictEffectsMode', () => {
464
}
465
466
await act(() => {
413
- ReactTestRenderer.create(<App text={'mount'} />);
467
+ ReactTestRenderer.create(
468
+ <React.StrictMode>
469
+ <App text={'mount'} />
470
+ </React.StrictMode>,
471
+ );
472
});
473
474
assertLog(['componentDidMount']);
@@ -437,12 +495,17 @@ describe('StrictEffectsMode', () => {
495
}
496
497
await act(() => {
440
- ReactTestRenderer.create(<App text={'mount'} />, {
441
- isConcurrent: true,
442
- });
498
+ ReactTestRenderer.create(
499
+ <React.StrictMode>
500
+ <App text={'mount'} />
501
+ </React.StrictMode>,
502
+ {
503
+ isConcurrent: true,
504
+ },
505
+ );
506
});
507
445
- if (supportsDoubleInvokeEffects()) {
508
+ if (__DEV__) {
509
assertLog([
510
'mount',
511
'useLayoutEffect mount',
@@ -502,10 +565,15 @@ describe('StrictEffectsMode', () => {
565
}
566
567
await act(() => {
505
- ReactTestRenderer.create(<App />, {isConcurrent: true});
568
+ ReactTestRenderer.create(
569
+ <React.StrictMode>
570
+ <App />
571
+ </React.StrictMode>,
572
+ {isConcurrent: true},
573
+ );
574
});
575
508
- if (supportsDoubleInvokeEffects()) {
576
+ if (__DEV__) {
577
assertLog([
578
'App useLayoutEffect mount',
579
'App useEffect mount',
@@ -522,7 +590,7 @@ describe('StrictEffectsMode', () => {
590
_setShowChild(true);
591
});
592
525
- if (supportsDoubleInvokeEffects()) {
593
+ if (__DEV__) {
594
assertLog([
595
'App useLayoutEffect unmount',
596
'Child useLayoutEffect mount',
@@ -585,12 +653,17 @@ describe('StrictEffectsMode', () => {
653
654
let renderer;
655
await act(() => {
588
- renderer = ReactTestRenderer.create(<App text={'mount'} />, {
589
- isConcurrent: true,
590
- });
656
+ renderer = ReactTestRenderer.create(
657
+ <React.StrictMode>
658
+ <App text={'mount'} />
659
+ </React.StrictMode>,
660
+ {
661
+ isConcurrent: true,
662
+ },
663
+ );
664
});
665
593
- if (supportsDoubleInvokeEffects()) {
666
+ if (__DEV__) {
667
assertLog([
668
'componentDidMount',
669
'useLayoutEffect mount',
@@ -611,7 +684,11 @@ describe('StrictEffectsMode', () => {
684
}
685
686
await act(() => {
614
- renderer.update(<App text={'mount'} />);
687
+ renderer.update(
688
+ <React.StrictMode>
689
+ <App text={'mount'} />
690
+ </React.StrictMode>,
691
+ );
692
});
693
694
assertLog([
@@ -666,12 +743,17 @@ describe('StrictEffectsMode', () => {
743
744
let renderer;
745
await act(() => {
669
- renderer = ReactTestRenderer.create(<App text={'mount'} />, {
670
- isConcurrent: true,
671
- });
746
+ renderer = ReactTestRenderer.create(
747
+ <React.StrictMode>
748
+ <App text={'mount'} />
749
+ </React.StrictMode>,
750
+ {
751
+ isConcurrent: true,
752
+ },
753
+ );
754
});
755
674
- if (supportsDoubleInvokeEffects()) {
756
+ if (__DEV__) {
757
assertLog([
758
'useLayoutEffect mount',
759
'useEffect mount',
@@ -686,7 +768,11 @@ describe('StrictEffectsMode', () => {
768
}
769
770
await act(() => {
689
- renderer.update(<App text={'mount'} />);
771
+ renderer.update(
772
+ <React.StrictMode>
773
+ <App text={'mount'} />
774
+ </React.StrictMode>,
775
+ );
776
});
777
778
assertLog([
packages/react-reconciler/src/__tests__/StrictEffectsModeDefaults-test.internal.js
+100
-31
@@ -32,9 +32,6 @@ describe('StrictEffectsMode defaults', () => {
32
waitForAll = InternalTestUtils.waitForAll;
33
waitForPaint = InternalTestUtils.waitForPaint;
34
assertLog = InternalTestUtils.assertLog;
35
-
36
- const ReactFeatureFlags = require('shared/ReactFeatureFlags');
37
- ReactFeatureFlags.createRootStrictEffectsByDefault = __DEV__;
35
});
36
37
it('should not double invoke effects in legacy mode', async () => {
@@ -53,7 +50,11 @@ describe('StrictEffectsMode defaults', () => {
50
}
51
52
await act(() => {
56
- ReactNoop.renderLegacySyncRoot(<App text={'mount'} />);
53
+ ReactNoop.renderLegacySyncRoot(
54
+ <React.StrictMode>
55
+ <App text={'mount'} />
56
+ </React.StrictMode>,
57
+ );
58
});
59
60
assertLog(['useLayoutEffect mount', 'useEffect mount']);
@@ -79,7 +80,11 @@ describe('StrictEffectsMode defaults', () => {
80
}
81
82
await act(() => {
82
- ReactNoop.renderLegacySyncRoot(<App text={'mount'} />);
83
+ ReactNoop.renderLegacySyncRoot(
84
+ <React.StrictMode>
85
+ <App text={'mount'} />
86
+ </React.StrictMode>,
87
+ );
88
});
89
90
assertLog(['componentDidMount']);
@@ -98,9 +103,9 @@ describe('StrictEffectsMode defaults', () => {
103
104
await act(async () => {
105
ReactNoop.render(
101
- <>
106
+ <React.StrictMode>
107
<ComponentWithEffects label={'one'} />
103
- </>,
108
+ </React.StrictMode>,
109
);
110
111
await waitForPaint([
@@ -112,10 +117,10 @@ describe('StrictEffectsMode defaults', () => {
117
118
await act(async () => {
119
ReactNoop.render(
115
- <>
120
+ <React.StrictMode>
121
<ComponentWithEffects label={'one'} />
122
<ComponentWithEffects label={'two'} />
118
- </>,
123
+ </React.StrictMode>,
124
);
125
126
assertLog([]);
@@ -151,9 +156,9 @@ describe('StrictEffectsMode defaults', () => {
156
157
await act(async () => {
158
ReactNoop.render(
154
- <>
159
+ <React.StrictMode>
160
<ComponentWithEffects label={'one'} />
156
- </>,
161
+ </React.StrictMode>,
162
);
163
164
await waitForAll([
@@ -168,10 +173,10 @@ describe('StrictEffectsMode defaults', () => {
173
174
await act(async () => {
175
ReactNoop.render(
171
- <>
176
+ <React.StrictMode>
177
<ComponentWithEffects label={'one'} />
178
<ComponentWithEffects label={'two'} />
174
- </>,
179
+ </React.StrictMode>,
180
);
181
182
await waitFor([
@@ -209,7 +214,11 @@ describe('StrictEffectsMode defaults', () => {
214
return text;
215
}
216
await act(() => {
212
- ReactNoop.render(<App text={'mount'} />);
217
+ ReactNoop.render(
218
+ <React.StrictMode>
219
+ <App text={'mount'} />
220
+ </React.StrictMode>,
221
+ );
222
});
223
224
assertLog([
@@ -222,7 +231,11 @@ describe('StrictEffectsMode defaults', () => {
231
]);
232
233
await act(() => {
225
- ReactNoop.render(<App text={'update'} />);
234
+ ReactNoop.render(
235
+ <React.StrictMode>
236
+ <App text={'update'} />
237
+ </React.StrictMode>,
238
+ );
239
});
240
241
assertLog([
@@ -255,7 +268,11 @@ describe('StrictEffectsMode defaults', () => {
268
}
269
270
await act(() => {
258
- ReactNoop.render(<App text={'mount'} />);
271
+ ReactNoop.render(
272
+ <React.StrictMode>
273
+ <App text={'mount'} />
274
+ </React.StrictMode>,
275
+ );
276
});
277
278
assertLog([
@@ -268,7 +285,11 @@ describe('StrictEffectsMode defaults', () => {
285
]);
286
287
await act(() => {
271
- ReactNoop.render(<App text={'update'} />);
288
+ ReactNoop.render(
289
+ <React.StrictMode>
290
+ <App text={'update'} />
291
+ </React.StrictMode>,
292
+ );
293
});
294
295
assertLog([
@@ -301,7 +322,11 @@ describe('StrictEffectsMode defaults', () => {
322
}
323
324
await act(() => {
304
- ReactNoop.render(<App text={'mount'} />);
325
+ ReactNoop.render(
326
+ <React.StrictMode>
327
+ <App text={'mount'} />
328
+ </React.StrictMode>,
329
+ );
330
});
331
332
assertLog([
@@ -314,7 +339,11 @@ describe('StrictEffectsMode defaults', () => {
339
]);
340
341
await act(() => {
317
- ReactNoop.render(<App text={'update'} />);
342
+ ReactNoop.render(
343
+ <React.StrictMode>
344
+ <App text={'update'} />
345
+ </React.StrictMode>,
346
+ );
347
});
348
349
assertLog([
@@ -345,7 +374,11 @@ describe('StrictEffectsMode defaults', () => {
374
}
375
376
await act(() => {
348
- ReactNoop.render(<App text={'mount'} />);
377
+ ReactNoop.render(
378
+ <React.StrictMode>
379
+ <App text={'mount'} />
380
+ </React.StrictMode>,
381
+ );
382
});
383
384
assertLog([
@@ -356,7 +389,11 @@ describe('StrictEffectsMode defaults', () => {
389
]);
390
391
await act(() => {
359
- ReactNoop.render(<App text={'update'} />);
392
+ ReactNoop.render(
393
+ <React.StrictMode>
394
+ <App text={'update'} />
395
+ </React.StrictMode>,
396
+ );
397
});
398
399
assertLog(['useLayoutEffect mount', 'useEffect mount']);
@@ -383,7 +420,11 @@ describe('StrictEffectsMode defaults', () => {
420
}
421
422
await act(() => {
386
- ReactNoop.render(<App text={'mount'} />);
423
+ ReactNoop.render(
424
+ <React.StrictMode>
425
+ <App text={'mount'} />
426
+ </React.StrictMode>,
427
+ );
428
});
429
430
expect(onRefMock.mock.calls.length).toBe(3);
@@ -417,7 +458,11 @@ describe('StrictEffectsMode defaults', () => {
458
}
459
460
await act(() => {
420
- ReactNoop.render(<App />);
461
+ ReactNoop.render(
462
+ <React.StrictMode>
463
+ <App />
464
+ </React.StrictMode>,
465
+ );
466
});
467
468
assertLog([
@@ -447,7 +492,11 @@ describe('StrictEffectsMode defaults', () => {
492
}
493
494
await act(() => {
450
- ReactNoop.render(<App text={'mount'} />);
495
+ ReactNoop.render(
496
+ <React.StrictMode>
497
+ <App text={'mount'} />
498
+ </React.StrictMode>,
499
+ );
500
});
501
502
assertLog([
@@ -457,7 +506,11 @@ describe('StrictEffectsMode defaults', () => {
506
]);
507
508
await act(() => {
460
- ReactNoop.render(<App text={'update'} />);
509
+ ReactNoop.render(
510
+ <React.StrictMode>
511
+ <App text={'update'} />
512
+ </React.StrictMode>,
513
+ );
514
});
515
516
assertLog(['componentDidUpdate']);
@@ -490,7 +543,11 @@ describe('StrictEffectsMode defaults', () => {
543
}
544
545
await act(() => {
493
- ReactNoop.render(<App text={'mount'} />);
546
+ ReactNoop.render(
547
+ <React.StrictMode>
548
+ <App text={'mount'} />
549
+ </React.StrictMode>,
550
+ );
551
});
552
553
assertLog([
@@ -540,7 +597,11 @@ describe('StrictEffectsMode defaults', () => {
597
}
598
599
await act(() => {
543
- ReactNoop.render(<App />);
600
+ ReactNoop.render(
601
+ <React.StrictMode>
602
+ <App />
603
+ </React.StrictMode>,
604
+ );
605
});
606
607
assertLog([
@@ -599,15 +660,19 @@ describe('StrictEffectsMode defaults', () => {
660
661
function App({text}) {
662
return (
602
- <>
663
+ <React.StrictMode>
664
<ClassChild text={text} />
665
<FunctionChild text={text} />
605
- </>
666
+ </React.StrictMode>
667
);
668
}
669
670
await act(() => {
610
- ReactNoop.render(<App text={'mount'} />);
671
+ ReactNoop.render(
672
+ <React.StrictMode>
673
+ <App text={'mount'} />
674
+ </React.StrictMode>,
675
+ );
676
});
677
678
assertLog([
@@ -623,7 +688,11 @@ describe('StrictEffectsMode defaults', () => {
688
]);
689
690
await act(() => {
626
- ReactNoop.render(<App text={'mount'} />);
691
+ ReactNoop.render(
692
+ <React.StrictMode>
693
+ <App text={'mount'} />
694
+ </React.StrictMode>,
695
+ );
696
});
697
698
assertLog([
packages/shared/ReactFeatureFlags.js
-7
@@ -171,13 +171,6 @@ export const enableFilterEmptyStringAttributesDOM = __NEXT_MAJOR__;
171
// when we plan to enable them.
172
// -----------------------------------------------------------------------------
173
174
-// This flag enables Strict Effects by default. We're not turning this on until
175
-// after 18 because it requires migration work. Recommendation is to use
176
-// <StrictMode /> to gradually upgrade components.
177
-// If TRUE, trees rendered with createRoot will be StrictEffectsMode.
178
-// If FALSE, these trees will be StrictLegacyMode.
179
-export const createRootStrictEffectsByDefault = false;
180
-
174
export const disableModulePatternComponents = false;
175
176
export const enableUseRefAccessWarning = false;
packages/shared/forks/ReactFeatureFlags.native-fb.js
-2
@@ -72,8 +72,6 @@ export const retryLaneExpirationMs = 5000;
72
export const syncLaneExpirationMs = 250;
73
export const transitionLaneExpirationMs = 5000;
74
75
-export const createRootStrictEffectsByDefault = false;
76
-
75
export const disableSchedulerTimeoutInWorkLoop = false;
76
export const enableLazyContextPropagation = false;
77
export const enableLegacyHidden = true;
packages/shared/forks/ReactFeatureFlags.native-oss.js
-1
@@ -55,7 +55,6 @@ export const retryLaneExpirationMs = 5000;
55
export const syncLaneExpirationMs = 250;
56
export const transitionLaneExpirationMs = 5000;
57
58
-export const createRootStrictEffectsByDefault = false;
58
export const enableUseRefAccessWarning = false;
59
60
export const disableSchedulerTimeoutInWorkLoop = false;
packages/shared/forks/ReactFeatureFlags.test-renderer.js
-1
@@ -55,7 +55,6 @@ export const retryLaneExpirationMs = 5000;
55
export const syncLaneExpirationMs = 250;
56
export const transitionLaneExpirationMs = 5000;
57
58
-export const createRootStrictEffectsByDefault = false;
58
export const enableUseRefAccessWarning = false;
59
60
export const disableSchedulerTimeoutInWorkLoop = false;
packages/shared/forks/ReactFeatureFlags.test-renderer.native.js
-1
@@ -49,7 +49,6 @@ export const enableCPUSuspense = false;
49
export const enableUseMemoCacheHook = true;
50
export const enableUseEffectEventHook = false;
51
export const enableClientRenderFallbackOnTextMismatch = true;
52
-export const createRootStrictEffectsByDefault = false;
52
export const enableUseRefAccessWarning = false;
53
54
export const enableRetryLaneExpiration = false;
packages/shared/forks/ReactFeatureFlags.test-renderer.www.js
-1
@@ -55,7 +55,6 @@ export const retryLaneExpirationMs = 5000;
55
export const syncLaneExpirationMs = 250;
56
export const transitionLaneExpirationMs = 5000;
57
58
-export const createRootStrictEffectsByDefault = false;
58
export const enableUseRefAccessWarning = false;
59
60
export const disableSchedulerTimeoutInWorkLoop = false;
packages/shared/forks/ReactFeatureFlags.www.js
-1
@@ -49,7 +49,6 @@ export const enableProfilerNestedUpdateScheduledHook: boolean =
49
__PROFILE__ && dynamicFeatureFlags.enableProfilerNestedUpdateScheduledHook;
50
export const enableUpdaterTracking = __PROFILE__;
51
52
-export const createRootStrictEffectsByDefault = false;
52
export const enableSuspenseAvoidThisFallback = true;
53
export const enableSuspenseAvoidThisFallbackFizz = false;
54
scripts/jest/TestFlags.js
-3
@@ -50,9 +50,6 @@ const environmentFlags = {
50
FIXME: false,
51
TODO: false,
52
53
- // Turn these flags back on (or delete) once the effect list is removed in
54
- // favor of a depth-first traversal using `subtreeTags`.
55
- dfsEffectsRefactor: true,
53
enableUseJSStackToTrackPassiveDurations: false,
54
};
55