diff --git a/packages/react-dom/src/__tests__/ReactDOMNativeEventHeuristic-test.js b/packages/react-dom/src/__tests__/ReactDOMNativeEventHeuristic-test.js
index 7310a9c49b955..1a37b74f71bf8 100644
--- a/packages/react-dom/src/__tests__/ReactDOMNativeEventHeuristic-test.js
+++ b/packages/react-dom/src/__tests__/ReactDOMNativeEventHeuristic-test.js
@@ -43,7 +43,7 @@ describe('ReactDOMNativeEventHeuristic-test', () => {
}
// @gate experimental
- // @gate enableDiscreteEventMicroTasks && enableNativeEventPriorityInference
+ // @gate enableNativeEventPriorityInference
it('ignores discrete events on a pending removed element', async () => {
const disableButtonRef = React.createRef();
const submitButtonRef = React.createRef();
@@ -95,7 +95,7 @@ describe('ReactDOMNativeEventHeuristic-test', () => {
});
// @gate experimental
- // @gate enableDiscreteEventMicroTasks && enableNativeEventPriorityInference
+ // @gate enableNativeEventPriorityInference
it('ignores discrete events on a pending removed event listener', async () => {
const disableButtonRef = React.createRef();
const submitButtonRef = React.createRef();
@@ -165,7 +165,7 @@ describe('ReactDOMNativeEventHeuristic-test', () => {
});
// @gate experimental
- // @gate enableDiscreteEventMicroTasks && enableNativeEventPriorityInference
+ // @gate enableNativeEventPriorityInference
it('uses the newest discrete events on a pending changed event listener', async () => {
const enableButtonRef = React.createRef();
const submitButtonRef = React.createRef();
@@ -229,7 +229,7 @@ describe('ReactDOMNativeEventHeuristic-test', () => {
});
// @gate experimental
- // @gate enableDiscreteEventMicroTasks && enableNativeEventPriorityInference
+ // @gate enableNativeEventPriorityInference
it('mouse over should be user-blocking but not discrete', async () => {
const root = ReactDOM.unstable_createRoot(container);
@@ -260,7 +260,7 @@ describe('ReactDOMNativeEventHeuristic-test', () => {
});
// @gate experimental
- // @gate enableDiscreteEventMicroTasks && enableNativeEventPriorityInference
+ // @gate enableNativeEventPriorityInference
it('mouse enter should be user-blocking but not discrete', async () => {
const root = ReactDOM.unstable_createRoot(container);
diff --git a/packages/react-dom/src/client/ReactDOMHostConfig.js b/packages/react-dom/src/client/ReactDOMHostConfig.js
index 0f27a15db3d70..dfd29b375a41b 100644
--- a/packages/react-dom/src/client/ReactDOMHostConfig.js
+++ b/packages/react-dom/src/client/ReactDOMHostConfig.js
@@ -67,7 +67,6 @@ import {
enableCreateEventHandleAPI,
enableScopeAPI,
enableNewReconciler,
- enableDiscreteEventMicroTasks,
} from 'shared/ReactFeatureFlags';
import {HostComponent, HostText} from 'react-reconciler/src/ReactWorkTags';
import {listenToAllSupportedEvents} from '../events/DOMPluginEventSystem';
@@ -404,7 +403,7 @@ export const noTimeout = -1;
// -------------------
// Microtasks
// -------------------
-export const supportsMicrotasks = enableDiscreteEventMicroTasks;
+export const supportsMicrotasks = true;
export const scheduleMicrotask: any =
typeof queueMicrotask === 'function'
? queueMicrotask
diff --git a/packages/react-dom/src/events/plugins/__tests__/ChangeEventPlugin-test.js b/packages/react-dom/src/events/plugins/__tests__/ChangeEventPlugin-test.js
index 45828e2735ed7..26630b68b11fe 100644
--- a/packages/react-dom/src/events/plugins/__tests__/ChangeEventPlugin-test.js
+++ b/packages/react-dom/src/events/plugins/__tests__/ChangeEventPlugin-test.js
@@ -728,17 +728,10 @@ describe('ChangeEventPlugin', () => {
expect(Scheduler).toHaveYielded([]);
expect(input.value).toBe('initial');
- // Flush callbacks.
- // Now the click update has flushed.
- if (gate(flags => flags.enableDiscreteEventMicroTasks)) {
- // Flush microtask queue.
- await null;
- expect(Scheduler).toHaveYielded(['render: ']);
- expect(input.value).toBe('');
- } else {
- expect(Scheduler).toFlushAndYield(['render: ']);
- expect(input.value).toBe('');
- }
+ // Flush microtask queue.
+ await null;
+ expect(Scheduler).toHaveYielded(['render: ']);
+ expect(input.value).toBe('');
});
// @gate experimental
diff --git a/packages/react-dom/src/events/plugins/__tests__/SimpleEventPlugin-test.js b/packages/react-dom/src/events/plugins/__tests__/SimpleEventPlugin-test.js
index 795eda90c83cc..9af14ccd86809 100644
--- a/packages/react-dom/src/events/plugins/__tests__/SimpleEventPlugin-test.js
+++ b/packages/react-dom/src/events/plugins/__tests__/SimpleEventPlugin-test.js
@@ -470,24 +470,15 @@ describe('SimpleEventPlugin', function() {
'High-pri count: 7, Low-pri count: 0',
]);
- if (gate(flags => flags.enableDiscreteEventMicroTasks)) {
- // Flush the microtask queue
- await null;
-
- // At the end, both counters should equal the total number of clicks
- expect(Scheduler).toHaveYielded([
- 'High-pri count: 8, Low-pri count: 0',
- ]);
- expect(Scheduler).toFlushAndYield([
- 'High-pri count: 8, Low-pri count: 8',
- ]);
- } else {
- // At the end, both counters should equal the total number of clicks
- expect(Scheduler).toFlushAndYield([
- 'High-pri count: 8, Low-pri count: 0',
- 'High-pri count: 8, Low-pri count: 8',
- ]);
- }
+ // Flush the microtask queue
+ await null;
+
+ // At the end, both counters should equal the total number of clicks
+ expect(Scheduler).toHaveYielded(['High-pri count: 8, Low-pri count: 0']);
+ expect(Scheduler).toFlushAndYield([
+ 'High-pri count: 8, Low-pri count: 8',
+ ]);
+
expect(button.textContent).toEqual('High-pri count: 8, Low-pri count: 8');
});
});
diff --git a/packages/react-noop-renderer/src/createReactNoop.js b/packages/react-noop-renderer/src/createReactNoop.js
index 743470966b3f0..1a7ccbd07fbc3 100644
--- a/packages/react-noop-renderer/src/createReactNoop.js
+++ b/packages/react-noop-renderer/src/createReactNoop.js
@@ -27,10 +27,7 @@ import {
LegacyRoot,
} from 'react-reconciler/src/ReactRootTags';
-import {
- enableNativeEventPriorityInference,
- enableDiscreteEventMicroTasks,
-} from 'shared/ReactFeatureFlags';
+import {enableNativeEventPriorityInference} from 'shared/ReactFeatureFlags';
import ReactSharedInternals from 'shared/ReactSharedInternals';
import enqueueTask from 'shared/enqueueTask';
const {IsSomeRendererActing} = ReactSharedInternals;
@@ -376,7 +373,7 @@ function createReactNoop(reconciler: Function, useMutation: boolean) {
cancelTimeout: clearTimeout,
noTimeout: -1,
- supportsMicrotasks: enableDiscreteEventMicroTasks,
+ supportsMicrotasks: true,
scheduleMicrotask:
typeof queueMicrotask === 'function'
? queueMicrotask
diff --git a/packages/react-reconciler/src/__tests__/ReactSuspenseWithNoopRenderer-test.js b/packages/react-reconciler/src/__tests__/ReactSuspenseWithNoopRenderer-test.js
index 8e8a512dacf41..8ec621be0d015 100644
--- a/packages/react-reconciler/src/__tests__/ReactSuspenseWithNoopRenderer-test.js
+++ b/packages/react-reconciler/src/__tests__/ReactSuspenseWithNoopRenderer-test.js
@@ -3518,56 +3518,6 @@ describe('ReactSuspenseWithNoopRenderer', () => {
);
});
- // @gate enableCache
- // @gate !enableDiscreteEventMicroTasks
- it('regression: empty render at high priority causes update to be dropped', async () => {
- // Reproduces a bug where flushDiscreteUpdates starts a new (empty) render
- // pass which cancels a scheduled timeout and causes the fallback never to
- // be committed.
- function App({text, shouldSuspend}) {
- return (
- <>
-
- }>
- {shouldSuspend && }
-
- >
- );
- }
-
- const root = ReactNoop.createRoot();
- ReactNoop.discreteUpdates(() => {
- // High pri
- root.render();
- });
- // Low pri
- root.render();
-
- expect(Scheduler).toFlushAndYield([
- // Render the high pri update
- 'A',
- // Render the low pri update
- 'A',
- 'Suspend! [B]',
- 'Loading...',
- ]);
- expect(root).toMatchRenderedOutput();
-
- // Triggers erstwhile bug where flushDiscreteUpdates caused an empty render
- // at a previously committed level
- ReactNoop.flushDiscreteUpdates();
-
- // Commit the placeholder
- Scheduler.unstable_advanceTime(2000);
- await advanceTimers(2000);
- expect(root).toMatchRenderedOutput(
- <>
-
-
- >,
- );
- });
-
// @gate experimental
// @gate enableCache
it('regression: ping at high priority causes update to be dropped', async () => {
diff --git a/packages/shared/ReactFeatureFlags.js b/packages/shared/ReactFeatureFlags.js
index 0d83efe103329..4adc7ac9b4dd5 100644
--- a/packages/shared/ReactFeatureFlags.js
+++ b/packages/shared/ReactFeatureFlags.js
@@ -150,8 +150,6 @@ export const enableRecursiveCommitTraversal = false;
export const disableSchedulerTimeoutInWorkLoop = false;
-export const enableDiscreteEventMicroTasks = false;
-
export const enableSyncMicroTasks = false;
export const enableNativeEventPriorityInference = false;
diff --git a/packages/shared/forks/ReactFeatureFlags.native-fb.js b/packages/shared/forks/ReactFeatureFlags.native-fb.js
index b0dad1851fac6..6c891df1b3ea9 100644
--- a/packages/shared/forks/ReactFeatureFlags.native-fb.js
+++ b/packages/shared/forks/ReactFeatureFlags.native-fb.js
@@ -57,7 +57,6 @@ export const enableUseRefAccessWarning = false;
export const enableRecursiveCommitTraversal = false;
export const disableSchedulerTimeoutInWorkLoop = false;
-export const enableDiscreteEventMicroTasks = false;
export const enableSyncMicroTasks = false;
export const enableNativeEventPriorityInference = false;
export const enableLazyContextPropagation = false;
diff --git a/packages/shared/forks/ReactFeatureFlags.native-oss.js b/packages/shared/forks/ReactFeatureFlags.native-oss.js
index 7a34c7623cfdb..4e12e63a4fa09 100644
--- a/packages/shared/forks/ReactFeatureFlags.native-oss.js
+++ b/packages/shared/forks/ReactFeatureFlags.native-oss.js
@@ -56,7 +56,6 @@ export const enableUseRefAccessWarning = false;
export const enableRecursiveCommitTraversal = false;
export const disableSchedulerTimeoutInWorkLoop = false;
-export const enableDiscreteEventMicroTasks = false;
export const enableSyncMicroTasks = false;
export const enableNativeEventPriorityInference = false;
export const enableLazyContextPropagation = false;
diff --git a/packages/shared/forks/ReactFeatureFlags.test-renderer.js b/packages/shared/forks/ReactFeatureFlags.test-renderer.js
index adb63e0a8df5c..27dd0cdc9bda5 100644
--- a/packages/shared/forks/ReactFeatureFlags.test-renderer.js
+++ b/packages/shared/forks/ReactFeatureFlags.test-renderer.js
@@ -56,7 +56,6 @@ export const enableUseRefAccessWarning = false;
export const enableRecursiveCommitTraversal = false;
export const disableSchedulerTimeoutInWorkLoop = false;
-export const enableDiscreteEventMicroTasks = false;
export const enableSyncMicroTasks = false;
export const enableNativeEventPriorityInference = false;
export const enableLazyContextPropagation = false;
diff --git a/packages/shared/forks/ReactFeatureFlags.test-renderer.native.js b/packages/shared/forks/ReactFeatureFlags.test-renderer.native.js
index 5c18737ebec6a..8d3f3a92ea231 100644
--- a/packages/shared/forks/ReactFeatureFlags.test-renderer.native.js
+++ b/packages/shared/forks/ReactFeatureFlags.test-renderer.native.js
@@ -56,7 +56,6 @@ export const enableUseRefAccessWarning = false;
export const enableRecursiveCommitTraversal = false;
export const disableSchedulerTimeoutInWorkLoop = false;
-export const enableDiscreteEventMicroTasks = false;
export const enableSyncMicroTasks = false;
export const enableNativeEventPriorityInference = false;
export const enableLazyContextPropagation = false;
diff --git a/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js b/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js
index 9ef9ee181b607..5d14b1de5fc54 100644
--- a/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js
+++ b/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js
@@ -56,7 +56,6 @@ export const enableUseRefAccessWarning = false;
export const enableRecursiveCommitTraversal = false;
export const disableSchedulerTimeoutInWorkLoop = false;
-export const enableDiscreteEventMicroTasks = false;
export const enableSyncMicroTasks = false;
export const enableNativeEventPriorityInference = false;
export const enableLazyContextPropagation = false;
diff --git a/packages/shared/forks/ReactFeatureFlags.testing.js b/packages/shared/forks/ReactFeatureFlags.testing.js
index b3240c62dad37..12fcc75be187c 100644
--- a/packages/shared/forks/ReactFeatureFlags.testing.js
+++ b/packages/shared/forks/ReactFeatureFlags.testing.js
@@ -56,7 +56,6 @@ export const enableUseRefAccessWarning = false;
export const enableRecursiveCommitTraversal = false;
export const disableSchedulerTimeoutInWorkLoop = false;
-export const enableDiscreteEventMicroTasks = false;
export const enableSyncMicroTasks = false;
export const enableNativeEventPriorityInference = false;
export const enableLazyContextPropagation = false;
diff --git a/packages/shared/forks/ReactFeatureFlags.testing.www.js b/packages/shared/forks/ReactFeatureFlags.testing.www.js
index 65eeaee980825..c89caeffcf06f 100644
--- a/packages/shared/forks/ReactFeatureFlags.testing.www.js
+++ b/packages/shared/forks/ReactFeatureFlags.testing.www.js
@@ -56,7 +56,6 @@ export const enableUseRefAccessWarning = false;
export const enableRecursiveCommitTraversal = false;
export const disableSchedulerTimeoutInWorkLoop = false;
-export const enableDiscreteEventMicroTasks = false;
export const enableSyncMicroTasks = false;
export const enableNativeEventPriorityInference = false;
export const enableLazyContextPropagation = false;
diff --git a/packages/shared/forks/ReactFeatureFlags.www-dynamic.js b/packages/shared/forks/ReactFeatureFlags.www-dynamic.js
index a550d45be2d19..46dc190a61271 100644
--- a/packages/shared/forks/ReactFeatureFlags.www-dynamic.js
+++ b/packages/shared/forks/ReactFeatureFlags.www-dynamic.js
@@ -55,7 +55,6 @@ export const enableUseRefAccessWarning = __VARIANT__;
export const enableProfilerNestedUpdateScheduledHook = __VARIANT__;
export const disableSchedulerTimeoutInWorkLoop = __VARIANT__;
-export const enableDiscreteEventMicroTasks = __VARIANT__;
export const enableSyncMicroTasks = __VARIANT__;
export const enableNativeEventPriorityInference = __VARIANT__;
export const enableLazyContextPropagation = __VARIANT__;
diff --git a/packages/shared/forks/ReactFeatureFlags.www.js b/packages/shared/forks/ReactFeatureFlags.www.js
index e4d0b079166b4..35bbe2cb1fbec 100644
--- a/packages/shared/forks/ReactFeatureFlags.www.js
+++ b/packages/shared/forks/ReactFeatureFlags.www.js
@@ -31,7 +31,6 @@ export const {
enableUseRefAccessWarning,
disableNativeComponentFrames,
disableSchedulerTimeoutInWorkLoop,
- enableDiscreteEventMicroTasks,
enableSyncMicroTasks,
enableNativeEventPriorityInference,
enableLazyContextPropagation,