dillon1000/react

Commit

Bugfix: Flush legacy sync passive effects at beginning of event (#21846)

* Re-land recent flushSync changes

Adds back #21776 and #21775, which were removed due to an internal
e2e test failure.

Will attempt to fix in subsequent commits.

* Failing test: Legacy mode sync passive effects

In concurrent roots, if a render is synchronous, we flush its passive
effects synchronously. In legacy roots, we don't do this because all
updates are synchronous — so we need to flush at the beginning of the
next event. This is how `discreteUpdates` worked.

* Flush legacy passive effects at beginning of event

Fixes test added in previous commit.
Browse files
Changed paths17 files
First-parent comparison
M packages/react-devtools-shared/src/__tests__/__snapshots__/profilingCache-test.js.snap ModifiedM packages/react-dom/src/__tests__/ReactDOMFiber-test.js ModifiedM packages/react-dom/src/__tests__/ReactMount-test.js ModifiedM packages/react-dom/src/client/ReactDOM.js ModifiedM packages/react-dom/src/client/ReactDOMLegacy.js ModifiedM packages/react-dom/src/events/ReactDOMUpdateBatching.js ModifiedM packages/react-noop-renderer/src/ReactNoop.js ModifiedM packages/react-noop-renderer/src/ReactNoopPersistent.js ModifiedM packages/react-noop-renderer/src/createReactNoop.js ModifiedM packages/react-reconciler/src/ReactFiberReconciler.js ModifiedM packages/react-reconciler/src/ReactFiberReconciler.new.js ModifiedM packages/react-reconciler/src/ReactFiberReconciler.old.js ModifiedM packages/react-reconciler/src/ReactFiberWorkLoop.new.js ModifiedM packages/react-reconciler/src/ReactFiberWorkLoop.old.js ModifiedM packages/react-reconciler/src/__tests__/ReactFlushSync-test.js ModifiedM packages/react-reconciler/src/__tests__/ReactHooksWithNoopRenderer-test.js ModifiedM packages/react-reconciler/src/__tests__/ReactIncrementalScheduling-test.js Modified
Patch

Files changed

Rendering syntax-highlighted changes…