Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove flushDiscreteUpdates from end of event #21223

Merged
merged 1 commit into from Apr 20, 2021

Conversation

acdlite
Copy link
Collaborator

@acdlite acdlite commented Apr 9, 2021

We don't need this anymore because we flush in a microtask.

This should allow us to remove the logic in the event system that tracks nested event dispatches.

I added a test to confirm that nested event dispatches don't trigger a synchronous flush, like they would if we wrapped them flushSync. It already passed; I added it to prevent a regression.

We don't need this anymore because we flush in a microtask.

This should allow us to remove the logic in the event system that
tracks nested event dispatches.

I added a test to confirm that nested event dispatches don't triggger
a synchronous flush, like they would if we wrapped them `flushSync`. It
already passed; I added it to prevent a regression.
@facebook-github-bot facebook-github-bot added React Core Team Opened by a member of the React Core Team CLA Signed labels Apr 9, 2021
@acdlite acdlite marked this pull request as draft April 9, 2021 21:01
@sizebot
Copy link

sizebot commented Apr 9, 2021

Comparing: bdc23c3...ceded6a

Critical size changes

Includes critical production bundles, as well as any change greater than 2%:

Name +/- Base Current +/- gzip Base gzip Current gzip
oss-stable/react-dom/cjs/react-dom.production.min.js = 122.58 kB 122.57 kB = 39.35 kB 39.34 kB
oss-experimental/react-dom/cjs/react-dom.production.min.js = 129.14 kB 129.13 kB = 41.43 kB 41.43 kB
facebook-www/ReactDOM-prod.classic.js = 411.73 kB 411.61 kB = 76.19 kB 76.15 kB
facebook-www/ReactDOM-prod.modern.js = 399.79 kB 399.66 kB = 74.28 kB 74.25 kB
facebook-www/ReactDOMForked-prod.classic.js = 411.73 kB 411.61 kB = 76.19 kB 76.16 kB

Significant size changes

Includes any change greater than 0.2%:

(No significant changes)

Generated by 🚫 dangerJS against ceded6a

@acdlite acdlite force-pushed the removeflushdiscreteupdates branch from 857ba0f to 15e15aa Compare April 9, 2021 21:31
@acdlite acdlite marked this pull request as ready for review April 9, 2021 21:35
Copy link
Collaborator

@sebmarkbage sebmarkbage left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Requesting changes until we confirm if my suspicion is right.

packages/react-dom/src/events/ReactDOMUpdateBatching.js Outdated Show resolved Hide resolved
dispatchClickEvent(child);

await act(async () => {
dispatchClickEvent(child);
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had to change these tests because they were previously relying (accidentally) on the click event to flush the pending passive effects. Which after this change, they no longer do.

Fortunately, the fix is pretty easy. Unfortunately, this change affects legacy mode, too. I'm curious how many tests would be affected in normal practice.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hm. Yea that might be a big one.

@acdlite acdlite merged commit 7812003 into facebook:master Apr 20, 2021
facebook-github-bot pushed a commit to facebook/react-native that referenced this pull request Apr 21, 2021
Summary:
This sync includes the following changes:
- **[bd7f4a013](facebook/react@bd7f4a013 )**: Fix sloppy factoring in `performSyncWorkOnRoot` ([#21246](facebook/react#21246)) //<Andrew Clark>//
- **[78120032d](facebook/react@78120032d )**: Remove `flushDiscreteUpdates` from end of event ([#21223](facebook/react#21223)) //<Andrew Clark>//
- **[a3a7adb83](facebook/react@a3a7adb83 )**: Turn off enableSyncDefaultUpdates in test renderer ([#21319](facebook/react#21319)) //<Ricky>//
- **[cdb6b4c55](facebook/react@cdb6b4c55 )**: Only hide outermost host nodes when Offscreen is hidden ([#21250](facebook/react#21250)) //<Brian Vaughn>//
- **[b9c6a2b30](facebook/react@b9c6a2b30 )**: Remove LayoutStatic check from commit phase ([#21249](facebook/react#21249)) //<Brian Vaughn>//
- **[af1a4cbf7](facebook/react@af1a4cbf7 )**: Revert expiration for retry lanes ([#21300](facebook/react#21300)) //<Andrew Clark>//
- **[cc4b431da](facebook/react@cc4b431da )**: Mark boundary as client rendered even if aborting fallback ([#21294](facebook/react#21294)) //<Sebastian Markbåge>//

Changelog:
[General][Changed] - React Native sync for revisions f7cdc89...bd7f4a0

jest_e2e[run_all_tests]

Reviewed By: JoshuaGross

Differential Revision: D27909257

fbshipit-source-id: 36ec4cf1de9df109f1fe1542031df10a693baae0
koto pushed a commit to koto/react that referenced this pull request Jun 15, 2021
We don't need this anymore because we flush in a microtask.

This should allow us to remove the logic in the event system that
tracks nested event dispatches.

I added a test to confirm that nested event dispatches don't triggger
a synchronous flush, like they would if we wrapped them `flushSync`. It
already passed; I added it to prevent a regression.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CLA Signed React Core Team Opened by a member of the React Core Team
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants