Skip to content

Commit 0f3838a

Browse files
authored
Remove debugRenderPhaseSideEffects flag (#17270)
There are two similar flags, `debugRenderPhaseSideEffects` and `debugRenderPhaseSideEffectsForStrictMode`. The strict mode one is the only one that is actually used. I think originally the theory is that we would one day turn it on for all components, even outside strict mode. But what we'll do instead is migrate everyone to strict mode. The only place `debugRenderPhaseSideEffects` was being used was in an internal test file. I rewrote those tests to use public APIs.
1 parent cb09dbe commit 0f3838a

15 files changed

+839
-882
lines changed

packages/react-reconciler/src/ReactFiberBeginWork.js

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ import {
5656
} from 'shared/ReactSideEffectTags';
5757
import ReactSharedInternals from 'shared/ReactSharedInternals';
5858
import {
59-
debugRenderPhaseSideEffects,
6059
debugRenderPhaseSideEffectsForStrictMode,
6160
disableLegacyContext,
6261
enableProfilerTimer,
@@ -319,9 +318,8 @@ function updateForwardRef(
319318
renderExpirationTime,
320319
);
321320
if (
322-
debugRenderPhaseSideEffects ||
323-
(debugRenderPhaseSideEffectsForStrictMode &&
324-
workInProgress.mode & StrictMode)
321+
debugRenderPhaseSideEffectsForStrictMode &&
322+
workInProgress.mode & StrictMode
325323
) {
326324
// Only double-render components with Hooks
327325
if (workInProgress.memoizedState !== null) {
@@ -642,9 +640,8 @@ function updateFunctionComponent(
642640
renderExpirationTime,
643641
);
644642
if (
645-
debugRenderPhaseSideEffects ||
646-
(debugRenderPhaseSideEffectsForStrictMode &&
647-
workInProgress.mode & StrictMode)
643+
debugRenderPhaseSideEffectsForStrictMode &&
644+
workInProgress.mode & StrictMode
648645
) {
649646
// Only double-render components with Hooks
650647
if (workInProgress.memoizedState !== null) {
@@ -843,9 +840,8 @@ function finishClassComponent(
843840
setCurrentPhase('render');
844841
nextChildren = instance.render();
845842
if (
846-
debugRenderPhaseSideEffects ||
847-
(debugRenderPhaseSideEffectsForStrictMode &&
848-
workInProgress.mode & StrictMode)
843+
debugRenderPhaseSideEffectsForStrictMode &&
844+
workInProgress.mode & StrictMode
849845
) {
850846
instance.render();
851847
}
@@ -1376,9 +1372,8 @@ function mountIndeterminateComponent(
13761372
}
13771373

13781374
if (
1379-
debugRenderPhaseSideEffects ||
1380-
(debugRenderPhaseSideEffectsForStrictMode &&
1381-
workInProgress.mode & StrictMode)
1375+
debugRenderPhaseSideEffectsForStrictMode &&
1376+
workInProgress.mode & StrictMode
13821377
) {
13831378
// Only double-render components with Hooks
13841379
if (workInProgress.memoizedState !== null) {

packages/react-reconciler/src/ReactFiberClassComponent.js

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import type {ExpirationTime} from './ReactFiberExpirationTime';
1313
import React from 'react';
1414
import {Update, Snapshot} from 'shared/ReactSideEffectTags';
1515
import {
16-
debugRenderPhaseSideEffects,
1716
debugRenderPhaseSideEffectsForStrictMode,
1817
disableLegacyContext,
1918
warnAboutDeprecatedLifecycles,
@@ -150,9 +149,8 @@ export function applyDerivedStateFromProps(
150149

151150
if (__DEV__) {
152151
if (
153-
debugRenderPhaseSideEffects ||
154-
(debugRenderPhaseSideEffectsForStrictMode &&
155-
workInProgress.mode & StrictMode)
152+
debugRenderPhaseSideEffectsForStrictMode &&
153+
workInProgress.mode & StrictMode
156154
) {
157155
// Invoke the function an extra time to help detect side-effects.
158156
getDerivedStateFromProps(nextProps, prevState);
@@ -605,9 +603,8 @@ function constructClassInstance(
605603
// Instantiate twice to help detect side-effects.
606604
if (__DEV__) {
607605
if (
608-
debugRenderPhaseSideEffects ||
609-
(debugRenderPhaseSideEffectsForStrictMode &&
610-
workInProgress.mode & StrictMode)
606+
debugRenderPhaseSideEffectsForStrictMode &&
607+
workInProgress.mode & StrictMode
611608
) {
612609
new ctor(props, context); // eslint-disable-line no-new
613610
}

packages/react-reconciler/src/ReactUpdateQueue.js

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -97,10 +97,7 @@ import {
9797
import {Callback, ShouldCapture, DidCapture} from 'shared/ReactSideEffectTags';
9898
import {ClassComponent} from 'shared/ReactWorkTags';
9999

100-
import {
101-
debugRenderPhaseSideEffects,
102-
debugRenderPhaseSideEffectsForStrictMode,
103-
} from 'shared/ReactFeatureFlags';
100+
import {debugRenderPhaseSideEffectsForStrictMode} from 'shared/ReactFeatureFlags';
104101

105102
import {StrictMode} from './ReactTypeOfMode';
106103
import {
@@ -373,9 +370,8 @@ function getStateFromUpdate<State>(
373370
if (__DEV__) {
374371
enterDisallowedContextReadInDEV();
375372
if (
376-
debugRenderPhaseSideEffects ||
377-
(debugRenderPhaseSideEffectsForStrictMode &&
378-
workInProgress.mode & StrictMode)
373+
debugRenderPhaseSideEffectsForStrictMode &&
374+
workInProgress.mode & StrictMode
379375
) {
380376
payload.call(instance, prevState, nextProps);
381377
}
@@ -402,9 +398,8 @@ function getStateFromUpdate<State>(
402398
if (__DEV__) {
403399
enterDisallowedContextReadInDEV();
404400
if (
405-
debugRenderPhaseSideEffects ||
406-
(debugRenderPhaseSideEffectsForStrictMode &&
407-
workInProgress.mode & StrictMode)
401+
debugRenderPhaseSideEffectsForStrictMode &&
402+
workInProgress.mode & StrictMode
408403
) {
409404
payload.call(instance, prevState, nextProps);
410405
}

packages/react/src/__tests__/ReactDOMTracing-test.internal.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ let onWorkStopped;
2525

2626
function loadModules() {
2727
ReactFeatureFlags = require('shared/ReactFeatureFlags');
28-
ReactFeatureFlags.debugRenderPhaseSideEffects = false;
2928
ReactFeatureFlags.debugRenderPhaseSideEffectsForStrictMode = false;
3029
ReactFeatureFlags.enableProfilerTimer = true;
3130
ReactFeatureFlags.enableSchedulerTracing = true;

packages/react/src/__tests__/ReactProfiler-test.internal.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ function loadModules({
3030
useNoopRenderer = false,
3131
} = {}) {
3232
ReactFeatureFlags = require('shared/ReactFeatureFlags');
33-
ReactFeatureFlags.debugRenderPhaseSideEffects = false;
3433
ReactFeatureFlags.debugRenderPhaseSideEffectsForStrictMode = false;
3534
ReactFeatureFlags.enableProfilerTimer = enableProfilerTimer;
3635
ReactFeatureFlags.enableSchedulerTracing = enableSchedulerTracing;

packages/react/src/__tests__/ReactProfilerDOM-test.internal.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ let Scheduler;
1717

1818
function loadModules() {
1919
ReactFeatureFlags = require('shared/ReactFeatureFlags');
20-
ReactFeatureFlags.debugRenderPhaseSideEffects = false;
2120
ReactFeatureFlags.debugRenderPhaseSideEffectsForStrictMode = false;
2221
ReactFeatureFlags.enableProfilerTimer = true;
2322
ReactFeatureFlags.enableSchedulerTracing = true;

0 commit comments

Comments
 (0)