diff --git a/packages/react-dom/src/__tests__/ReactDOMFiberAsync-test.internal.js b/packages/react-dom/src/__tests__/ReactDOMFiberAsync-test.internal.js
index 5d85217921..a63e45cec6 100644
--- a/packages/react-dom/src/__tests__/ReactDOMFiberAsync-test.internal.js
+++ b/packages/react-dom/src/__tests__/ReactDOMFiberAsync-test.internal.js
@@ -10,7 +10,6 @@
'use strict';
const React = require('react');
-const Fragment = React.Fragment;
let ReactFeatureFlags = require('shared/ReactFeatureFlags');
let ReactDOM;
@@ -602,84 +601,4 @@ describe('ReactDOMFiberAsync', () => {
expect(root.createBatch).toBe(undefined);
});
});
-
- describe('Disable yielding', () => {
- beforeEach(() => {
- jest.resetModules();
- ReactFeatureFlags = require('shared/ReactFeatureFlags');
- ReactFeatureFlags.disableYielding = true;
- ReactFeatureFlags.debugRenderPhaseSideEffectsForStrictMode = false;
- ReactDOM = require('react-dom');
- Scheduler = require('scheduler');
- });
-
- it('wont yield during a render if yielding is disabled', () => {
- class A extends React.Component {
- render() {
- Scheduler.yieldValue('A');
- return
{this.props.children}
;
- }
- }
-
- class B extends React.Component {
- render() {
- Scheduler.yieldValue('B');
- return {this.props.children}
;
- }
- }
-
- class C extends React.Component {
- render() {
- Scheduler.yieldValue('C');
- return {this.props.children}
;
- }
- }
-
- let root = ReactDOM.unstable_createRoot(container);
-
- root.render(
-
-
-
-
- ,
- );
-
- expect(Scheduler).toHaveYielded([]);
-
- Scheduler.unstable_flushNumberOfYields(2);
- // Even though we just flushed two yields, we should have rendered
- // everything without yielding when the flag is on.
- expect(Scheduler).toHaveYielded(['A', 'B', 'C']);
- });
-
- it('wont suspend during a render if yielding is disabled', () => {
- let p = new Promise(resolve => {});
-
- function Suspend() {
- throw p;
- }
-
- let root = ReactDOM.unstable_createRoot(container);
- root.render(
- Initial,
- );
-
- Scheduler.flushAll();
- expect(container.textContent).toBe('Initial');
-
- root.render(
-
-
- ,
- );
-
- expect(Scheduler).toHaveYielded([]);
-
- Scheduler.flushAll();
-
- // This should have flushed to the DOM even though we haven't ran the timers.
- expect(container.textContent).toBe('Loading');
- });
- });
});
diff --git a/packages/react-reconciler/src/ReactFiberWorkLoop.js b/packages/react-reconciler/src/ReactFiberWorkLoop.js
index 28ffb780b7..84b27db051 100644
--- a/packages/react-reconciler/src/ReactFiberWorkLoop.js
+++ b/packages/react-reconciler/src/ReactFiberWorkLoop.js
@@ -23,7 +23,6 @@ import {
enableSuspenseServerRenderer,
replayFailedUnitOfWorkWithInvokeGuardedCallback,
enableProfilerTimer,
- disableYielding,
enableSchedulerTracing,
revertPassiveEffectsChange,
} from 'shared/ReactFeatureFlags';
@@ -1004,7 +1003,7 @@ function renderRoot(
// possible.
const hasNotProcessedNewUpdates =
workInProgressRootLatestProcessedExpirationTime === Sync;
- if (hasNotProcessedNewUpdates && !disableYielding && !isSync) {
+ if (hasNotProcessedNewUpdates && !isSync) {
// If we have not processed any new updates during this pass, then this is
// either a retry of an existing fallback state or a hidden tree.
// Hidden trees shouldn't be batched with other work and after that's
@@ -1041,7 +1040,7 @@ function renderRoot(
return commitRoot.bind(null, root);
}
case RootSuspendedWithDelay: {
- if (!disableYielding && !isSync) {
+ if (!isSync) {
// We're suspended in a state that should be avoided. We'll try to avoid committing
// it for as long as the timeouts let us.
if (workInProgressRootHasPendingPing) {
@@ -2147,11 +2146,6 @@ function computeMsUntilSuspenseLoadingDelay(
committedExpirationTime: ExpirationTime,
suspenseConfig: SuspenseConfig,
) {
- if (disableYielding) {
- // Timeout immediately when yielding is disabled.
- return 0;
- }
-
const busyMinDurationMs = (suspenseConfig.busyMinDurationMs: any) | 0;
if (busyMinDurationMs <= 0) {
return 0;
diff --git a/packages/react-reconciler/src/SchedulerWithReactIntegration.js b/packages/react-reconciler/src/SchedulerWithReactIntegration.js
index 7482b7fa9a..d01cda3e7a 100644
--- a/packages/react-reconciler/src/SchedulerWithReactIntegration.js
+++ b/packages/react-reconciler/src/SchedulerWithReactIntegration.js
@@ -11,10 +11,7 @@
// CommonJS interop named imports.
import * as Scheduler from 'scheduler';
import {__interactionsRef} from 'scheduler/tracing';
-import {
- disableYielding,
- enableSchedulerTracing,
-} from 'shared/ReactFeatureFlags';
+import {enableSchedulerTracing} from 'shared/ReactFeatureFlags';
import invariant from 'shared/invariant';
const {
@@ -65,9 +62,7 @@ export const IdlePriority: ReactPriorityLevel = 95;
// NoPriority is the absence of priority. Also React-only.
export const NoPriority: ReactPriorityLevel = 90;
-export const shouldYield = disableYielding
- ? () => false // Never yield when `disableYielding` is on
- : Scheduler_shouldYield;
+export const shouldYield = Scheduler_shouldYield;
let syncQueue: Array | null = null;
let immediateQueueCallbackNode: mixed | null = null;
diff --git a/packages/shared/ReactFeatureFlags.js b/packages/shared/ReactFeatureFlags.js
index d8c372bded..f33ef13e8a 100644
--- a/packages/shared/ReactFeatureFlags.js
+++ b/packages/shared/ReactFeatureFlags.js
@@ -45,9 +45,6 @@ export function addUserTimingListener() {
// Disable javascript: URL strings in href for XSS protection.
export const disableJavaScriptURLs = false;
-// Disables yielding during render in Concurrent Mode. Used for debugging only.
-export const disableYielding = false;
-
// React Fire: prevent the value and checked attributes from syncing
// with their related DOM properties
export const disableInputAttributeSyncing = false;
diff --git a/packages/shared/forks/ReactFeatureFlags.native-fb.js b/packages/shared/forks/ReactFeatureFlags.native-fb.js
index 455d16b771..1395754de0 100644
--- a/packages/shared/forks/ReactFeatureFlags.native-fb.js
+++ b/packages/shared/forks/ReactFeatureFlags.native-fb.js
@@ -27,7 +27,6 @@ export const warnAboutShorthandPropertyCollision = false;
export const enableSchedulerDebugging = false;
export const debugRenderPhaseSideEffectsForStrictMode = true;
export const disableJavaScriptURLs = false;
-export const disableYielding = false;
export const disableInputAttributeSyncing = false;
export const replayFailedUnitOfWorkWithInvokeGuardedCallback = __DEV__;
export const warnAboutDeprecatedLifecycles = true;
diff --git a/packages/shared/forks/ReactFeatureFlags.native-oss.js b/packages/shared/forks/ReactFeatureFlags.native-oss.js
index 719e718f1d..cbd417aa08 100644
--- a/packages/shared/forks/ReactFeatureFlags.native-oss.js
+++ b/packages/shared/forks/ReactFeatureFlags.native-oss.js
@@ -21,7 +21,6 @@ export const enableProfilerTimer = __PROFILE__;
export const enableSchedulerTracing = __PROFILE__;
export const enableSuspenseServerRenderer = false;
export const disableJavaScriptURLs = false;
-export const disableYielding = false;
export const disableInputAttributeSyncing = false;
export const enableStableConcurrentModeAPIs = false;
export const warnAboutShorthandPropertyCollision = false;
diff --git a/packages/shared/forks/ReactFeatureFlags.persistent.js b/packages/shared/forks/ReactFeatureFlags.persistent.js
index 4eddfd12b1..fd7086c247 100644
--- a/packages/shared/forks/ReactFeatureFlags.persistent.js
+++ b/packages/shared/forks/ReactFeatureFlags.persistent.js
@@ -21,7 +21,6 @@ export const enableProfilerTimer = __PROFILE__;
export const enableSchedulerTracing = __PROFILE__;
export const enableSuspenseServerRenderer = false;
export const disableJavaScriptURLs = false;
-export const disableYielding = false;
export const disableInputAttributeSyncing = false;
export const enableStableConcurrentModeAPIs = false;
export const warnAboutShorthandPropertyCollision = false;
diff --git a/packages/shared/forks/ReactFeatureFlags.test-renderer.js b/packages/shared/forks/ReactFeatureFlags.test-renderer.js
index 7bbde305c2..fc30a865ec 100644
--- a/packages/shared/forks/ReactFeatureFlags.test-renderer.js
+++ b/packages/shared/forks/ReactFeatureFlags.test-renderer.js
@@ -21,7 +21,6 @@ export const enableProfilerTimer = false;
export const enableSchedulerTracing = false;
export const enableSuspenseServerRenderer = false;
export const disableJavaScriptURLs = false;
-export const disableYielding = false;
export const disableInputAttributeSyncing = false;
export const enableStableConcurrentModeAPIs = false;
export const warnAboutShorthandPropertyCollision = false;
diff --git a/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js b/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js
index 2e83e0d982..be456ba142 100644
--- a/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js
+++ b/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js
@@ -27,7 +27,6 @@ export const enableStableConcurrentModeAPIs = false;
export const enableSchedulerDebugging = false;
export const warnAboutDeprecatedSetNativeProps = false;
export const disableJavaScriptURLs = false;
-export const disableYielding = false;
export const enableEventAPI = true;
export const enableJSXTransformAPI = true;
export const warnAboutMissingMockScheduler = true;
diff --git a/packages/shared/forks/ReactFeatureFlags.www.js b/packages/shared/forks/ReactFeatureFlags.www.js
index bb80d8173a..b8328ac7c5 100644
--- a/packages/shared/forks/ReactFeatureFlags.www.js
+++ b/packages/shared/forks/ReactFeatureFlags.www.js
@@ -16,7 +16,6 @@ export const {
debugRenderPhaseSideEffectsForStrictMode,
replayFailedUnitOfWorkWithInvokeGuardedCallback,
warnAboutDeprecatedLifecycles,
- disableYielding,
disableInputAttributeSyncing,
warnAboutShorthandPropertyCollision,
warnAboutDeprecatedSetNativeProps,