diff --git a/packages/react-reconciler/src/ReactFiberBeginWork.js b/packages/react-reconciler/src/ReactFiberBeginWork.js index d66132574649..8d86b271e857 100644 --- a/packages/react-reconciler/src/ReactFiberBeginWork.js +++ b/packages/react-reconciler/src/ReactFiberBeginWork.js @@ -46,7 +46,6 @@ import { import {captureWillSyncRenderPlaceholder} from './ReactFiberScheduler'; import ReactSharedInternals from 'shared/ReactSharedInternals'; import { - enableGetDerivedStateFromCatch, enableSuspense, debugRenderPhaseSideEffects, debugRenderPhaseSideEffectsForStrictMode, @@ -444,8 +443,7 @@ function finishClassComponent( let nextChildren; if ( didCaptureError && - (!enableGetDerivedStateFromCatch || - typeof Component.getDerivedStateFromCatch !== 'function') + typeof Component.getDerivedStateFromCatch !== 'function' ) { // If we captured an error, but getDerivedStateFrom catch is not defined, // unmount all the children. componentDidCatch will schedule an update to diff --git a/packages/react-reconciler/src/ReactFiberUnwindWork.js b/packages/react-reconciler/src/ReactFiberUnwindWork.js index bfd7714966e2..5a75fb554453 100644 --- a/packages/react-reconciler/src/ReactFiberUnwindWork.js +++ b/packages/react-reconciler/src/ReactFiberUnwindWork.js @@ -33,11 +33,7 @@ import { Update as UpdateEffect, LifecycleEffectMask, } from 'shared/ReactSideEffectTags'; -import { - enableGetDerivedStateFromCatch, - enableSuspense, - enableSchedulerTracing, -} from 'shared/ReactFeatureFlags'; +import {enableSuspense, enableSchedulerTracing} from 'shared/ReactFeatureFlags'; import {StrictMode, ConcurrentMode} from './ReactTypeOfMode'; import {createCapturedValue} from './ReactCapturedValue'; @@ -105,10 +101,7 @@ function createClassErrorUpdate( const update = createUpdate(expirationTime); update.tag = CaptureUpdate; const getDerivedStateFromCatch = fiber.type.getDerivedStateFromCatch; - if ( - enableGetDerivedStateFromCatch && - typeof getDerivedStateFromCatch === 'function' - ) { + if (typeof getDerivedStateFromCatch === 'function') { const error = errorInfo.value; update.payload = () => { return getDerivedStateFromCatch(error); @@ -118,10 +111,7 @@ function createClassErrorUpdate( const inst = fiber.stateNode; if (inst !== null && typeof inst.componentDidCatch === 'function') { update.callback = function callback() { - if ( - !enableGetDerivedStateFromCatch || - getDerivedStateFromCatch !== 'function' - ) { + if (getDerivedStateFromCatch !== 'function') { // To preserve the preexisting retry behavior of error boundaries, // we keep track of which ones already failed during this batch. // This gets reset before we yield back to the browser. @@ -364,8 +354,7 @@ function throwException( const instance = workInProgress.stateNode; if ( (workInProgress.effectTag & DidCapture) === NoEffect && - ((typeof ctor.getDerivedStateFromCatch === 'function' && - enableGetDerivedStateFromCatch) || + (typeof ctor.getDerivedStateFromCatch === 'function' || (instance !== null && typeof instance.componentDidCatch === 'function' && !isAlreadyFailedLegacyErrorBoundary(instance))) diff --git a/packages/react-reconciler/src/__tests__/ReactIncrementalErrorHandling-test.internal.js b/packages/react-reconciler/src/__tests__/ReactIncrementalErrorHandling-test.internal.js index 982d0b641bcb..38d90258785f 100644 --- a/packages/react-reconciler/src/__tests__/ReactIncrementalErrorHandling-test.internal.js +++ b/packages/react-reconciler/src/__tests__/ReactIncrementalErrorHandling-test.internal.js @@ -19,7 +19,6 @@ describe('ReactIncrementalErrorHandling', () => { beforeEach(() => { jest.resetModules(); ReactFeatureFlags = require('shared/ReactFeatureFlags'); - ReactFeatureFlags.enableGetDerivedStateFromCatch = true; ReactFeatureFlags.debugRenderPhaseSideEffectsForStrictMode = false; ReactFeatureFlags.replayFailedUnitOfWorkWithInvokeGuardedCallback = false; PropTypes = require('prop-types'); diff --git a/packages/react/src/__tests__/ReactProfiler-test.internal.js b/packages/react/src/__tests__/ReactProfiler-test.internal.js index ca6120b51ce4..8d2656a0f68c 100644 --- a/packages/react/src/__tests__/ReactProfiler-test.internal.js +++ b/packages/react/src/__tests__/ReactProfiler-test.internal.js @@ -36,7 +36,6 @@ function loadModules({ ReactFeatureFlags.debugRenderPhaseSideEffects = false; ReactFeatureFlags.debugRenderPhaseSideEffectsForStrictMode = false; ReactFeatureFlags.enableProfilerTimer = enableProfilerTimer; - ReactFeatureFlags.enableGetDerivedStateFromCatch = true; ReactFeatureFlags.enableSchedulerTracing = enableSchedulerTracing; ReactFeatureFlags.enableSuspense = enableSuspense; ReactFeatureFlags.replayFailedUnitOfWorkWithInvokeGuardedCallback = replayFailedUnitOfWorkWithInvokeGuardedCallback; diff --git a/packages/shared/ReactFeatureFlags.js b/packages/shared/ReactFeatureFlags.js index aae29ada1838..abd23679539d 100644 --- a/packages/shared/ReactFeatureFlags.js +++ b/packages/shared/ReactFeatureFlags.js @@ -10,9 +10,6 @@ // Exports ReactDOM.createRoot export const enableUserTimingAPI = __DEV__; -// Experimental error-boundary API that can recover from errors within a single -// render phase -export const enableGetDerivedStateFromCatch = false; // Suspense export const enableSuspense = false; // Helps identify side effects in begin-phase lifecycle hooks and setState reducers: diff --git a/packages/shared/forks/ReactFeatureFlags.native-fabric-fb.js b/packages/shared/forks/ReactFeatureFlags.native-fabric-fb.js index 69bb61eca4d4..566d27122270 100644 --- a/packages/shared/forks/ReactFeatureFlags.native-fabric-fb.js +++ b/packages/shared/forks/ReactFeatureFlags.native-fabric-fb.js @@ -15,7 +15,6 @@ import typeof * as FabricFeatureFlagsType from './ReactFeatureFlags.native-fabri export const debugRenderPhaseSideEffects = false; export const debugRenderPhaseSideEffectsForStrictMode = false; export const enableUserTimingAPI = __DEV__; -export const enableGetDerivedStateFromCatch = false; export const enableSuspense = false; export const warnAboutDeprecatedLifecycles = false; export const warnAboutLegacyContextAPI = __DEV__; diff --git a/packages/shared/forks/ReactFeatureFlags.native-fabric-oss.js b/packages/shared/forks/ReactFeatureFlags.native-fabric-oss.js index 66f1b4714ad4..f9b6576d4f46 100644 --- a/packages/shared/forks/ReactFeatureFlags.native-fabric-oss.js +++ b/packages/shared/forks/ReactFeatureFlags.native-fabric-oss.js @@ -15,7 +15,6 @@ import typeof * as FabricFeatureFlagsType from './ReactFeatureFlags.native-fabri export const debugRenderPhaseSideEffects = false; export const debugRenderPhaseSideEffectsForStrictMode = false; export const enableUserTimingAPI = __DEV__; -export const enableGetDerivedStateFromCatch = false; export const enableSuspense = false; export const warnAboutDeprecatedLifecycles = false; export const warnAboutLegacyContextAPI = false; diff --git a/packages/shared/forks/ReactFeatureFlags.native-fb.js b/packages/shared/forks/ReactFeatureFlags.native-fb.js index be63c527a8ee..4b12e739183d 100644 --- a/packages/shared/forks/ReactFeatureFlags.native-fb.js +++ b/packages/shared/forks/ReactFeatureFlags.native-fb.js @@ -14,7 +14,6 @@ import typeof * as FeatureFlagsShimType from './ReactFeatureFlags.native-fb'; // Re-export dynamic flags from the fbsource version. export const { - enableGetDerivedStateFromCatch, enableSuspense, debugRenderPhaseSideEffects, debugRenderPhaseSideEffectsForStrictMode, diff --git a/packages/shared/forks/ReactFeatureFlags.native-oss.js b/packages/shared/forks/ReactFeatureFlags.native-oss.js index 7a2e325723a7..a92e3c0f953f 100644 --- a/packages/shared/forks/ReactFeatureFlags.native-oss.js +++ b/packages/shared/forks/ReactFeatureFlags.native-oss.js @@ -14,7 +14,6 @@ import typeof * as FeatureFlagsShimType from './ReactFeatureFlags.native-oss'; export const debugRenderPhaseSideEffects = false; export const debugRenderPhaseSideEffectsForStrictMode = false; -export const enableGetDerivedStateFromCatch = false; export const enableSuspense = false; export const enableUserTimingAPI = __DEV__; export const replayFailedUnitOfWorkWithInvokeGuardedCallback = __DEV__; diff --git a/packages/shared/forks/ReactFeatureFlags.persistent.js b/packages/shared/forks/ReactFeatureFlags.persistent.js index 4b1b1c4c34f2..1fb299db333f 100644 --- a/packages/shared/forks/ReactFeatureFlags.persistent.js +++ b/packages/shared/forks/ReactFeatureFlags.persistent.js @@ -15,7 +15,6 @@ import typeof * as PersistentFeatureFlagsType from './ReactFeatureFlags.persiste export const debugRenderPhaseSideEffects = false; export const debugRenderPhaseSideEffectsForStrictMode = false; export const enableUserTimingAPI = __DEV__; -export const enableGetDerivedStateFromCatch = false; export const enableSuspense = false; export const warnAboutDeprecatedLifecycles = false; export const warnAboutLegacyContextAPI = false; diff --git a/packages/shared/forks/ReactFeatureFlags.test-renderer.js b/packages/shared/forks/ReactFeatureFlags.test-renderer.js index fb828d661dfb..07fde5086acc 100644 --- a/packages/shared/forks/ReactFeatureFlags.test-renderer.js +++ b/packages/shared/forks/ReactFeatureFlags.test-renderer.js @@ -15,7 +15,6 @@ import typeof * as PersistentFeatureFlagsType from './ReactFeatureFlags.persiste export const debugRenderPhaseSideEffects = false; export const debugRenderPhaseSideEffectsForStrictMode = false; export const enableUserTimingAPI = __DEV__; -export const enableGetDerivedStateFromCatch = false; export const enableSuspense = false; export const warnAboutDeprecatedLifecycles = false; export const warnAboutLegacyContextAPI = false; diff --git a/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js b/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js index 213d9ef75c4e..20e510afa1b9 100644 --- a/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js +++ b/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js @@ -15,7 +15,6 @@ import typeof * as PersistentFeatureFlagsType from './ReactFeatureFlags.persiste export const debugRenderPhaseSideEffects = false; export const debugRenderPhaseSideEffectsForStrictMode = false; export const enableUserTimingAPI = __DEV__; -export const enableGetDerivedStateFromCatch = false; export const enableSuspense = true; export const warnAboutDeprecatedLifecycles = false; export const warnAboutLegacyContextAPI = false; diff --git a/packages/shared/forks/ReactFeatureFlags.www.js b/packages/shared/forks/ReactFeatureFlags.www.js index 3f9d960d69f1..414bc4052b2a 100644 --- a/packages/shared/forks/ReactFeatureFlags.www.js +++ b/packages/shared/forks/ReactFeatureFlags.www.js @@ -15,7 +15,6 @@ export const { enableSuspense, debugRenderPhaseSideEffects, debugRenderPhaseSideEffectsForStrictMode, - enableGetDerivedStateFromCatch, enableSuspenseServerRenderer, replayFailedUnitOfWorkWithInvokeGuardedCallback, warnAboutDeprecatedLifecycles,