diff --git a/packages/react-dom-bindings/src/events/DOMPluginEventSystem.js b/packages/react-dom-bindings/src/events/DOMPluginEventSystem.js
index 2d4518fe38..8d7a783bd5 100644
--- a/packages/react-dom-bindings/src/events/DOMPluginEventSystem.js
+++ b/packages/react-dom-bindings/src/events/DOMPluginEventSystem.js
@@ -648,9 +648,10 @@ export function dispatchEventForPluginEventSystem(
// Special case: Flush continuous updates before the capture phase of a discrete event.
if (
eventSystemFlags & IS_CAPTURE_PHASE &&
+ node !== null &&
getCurrentUpdatePriority() === DiscreteEventPriority
) {
- const root: ?FiberRoot = node?.stateNode;
+ const root: ?FiberRoot = node.stateNode;
if (root != null) {
flushPendingContinuousUpdates(root);
}
diff --git a/packages/react-dom/src/events/__tests__/DOMPluginEventSystem-test.internal.js b/packages/react-dom/src/events/__tests__/DOMPluginEventSystem-test.internal.js
index d9cf99a5f6..9a4504e5c6 100644
--- a/packages/react-dom/src/events/__tests__/DOMPluginEventSystem-test.internal.js
+++ b/packages/react-dom/src/events/__tests__/DOMPluginEventSystem-test.internal.js
@@ -1280,8 +1280,10 @@ describe('DOMPluginEventSystem', () => {
);
}
const root = ReactDOMClient.createRoot(container);
- root.render();
- expect(Scheduler).toFlushAndYieldThrough(['Render:0']);
+ await act(async () => {
+ root.render();
+ });
+ expect(Scheduler).toHaveYielded(['Render:0']);
const buttonElement = buttonRef.current;
// Expect the click event to be able to get the latest state value set by mouse over events
@@ -3294,5 +3296,5 @@ describe('DOMPluginEventSystem', () => {
}
withEnableLegacyFBSupport(false);
- // withEnableLegacyFBSupport(true);
+ withEnableLegacyFBSupport(true);
});
diff --git a/packages/react-reconciler/src/ReactFiberWorkLoop.js b/packages/react-reconciler/src/ReactFiberWorkLoop.js
index d44fe27800..58a83e4fdf 100644
--- a/packages/react-reconciler/src/ReactFiberWorkLoop.js
+++ b/packages/react-reconciler/src/ReactFiberWorkLoop.js
@@ -139,6 +139,7 @@ import {
claimNextTransitionLane,
claimNextRetryLane,
includesSyncLane,
+ includesSomeLane,
isSubsetOfLanes,
mergeLanes,
removeLanes,