Skip to content

[Work Loop] Unify renderRoot{Sync,Concurrent} #27095

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

Closed
wants to merge 2 commits into from

Conversation

acdlite
Copy link
Collaborator

@acdlite acdlite commented Jul 11, 2023

These two functions used to diverge more but as we've added more features they've become almost the same. When they were simpler and less alike, it made sense to have two separate functions, but now I think it makes more sense to keep them unified and pass a boolean argument for the few places where they differ.

This is a refactor and it shouldn't affect any behavior, but the code paths are slightly different so it still carries some risk.

Next I'm going to do the same for perform{Sync,Concurrent}WorkOnRoot and associated functions, too.

acdlite added 2 commits July 11, 2023 13:45
These two functions used to diverge more but as we've added more
features they've become almost the same. When they were simpler and less
alike, it made sense to have two separate functions, but now I think it
makes more sense to keep them unified and pass a boolean argument for
the few places where they differ.

This is a refactor and it shouldn't affect any behavior, but the code
paths are slightly different so it still carries some risk.

Next I'm going to do the same for perform{Sync,Concurrent}WorkOnRoot and
associated functions, too.
@facebook-github-bot facebook-github-bot added CLA Signed React Core Team Opened by a member of the React Core Team labels Jul 11, 2023
@react-sizebot
Copy link

Comparing: fdc8c81...c5d41a4

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 = 164.35 kB 164.11 kB = 51.76 kB 51.73 kB
oss-experimental/react-dom/cjs/react-dom.production.min.js = 171.76 kB 171.52 kB = 53.98 kB 53.93 kB
facebook-www/ReactDOM-prod.classic.js = 567.22 kB 565.93 kB = 100.04 kB 99.99 kB
facebook-www/ReactDOM-prod.modern.js = 551.02 kB 549.72 kB = 97.21 kB 97.13 kB

Significant size changes

Includes any change greater than 0.2%:

Expand to show
Name +/- Base Current +/- gzip Base gzip Current gzip
oss-stable/react-dom/umd/react-dom.profiling.min.js = 173.24 kB 172.88 kB = 54.49 kB 54.38 kB
oss-stable-semver/react-dom/umd/react-dom.profiling.min.js = 173.16 kB 172.80 kB = 54.46 kB 54.35 kB
oss-stable/react-dom/cjs/react-dom.profiling.min.js = 173.98 kB 173.62 kB = 54.18 kB 54.14 kB
oss-stable-semver/react-dom/cjs/react-dom.profiling.min.js = 173.91 kB 173.54 kB = 54.15 kB 54.12 kB
facebook-www/ReactDOMTesting-dev.classic.js = 1,452.99 kB 1,449.95 kB = 314.65 kB 314.39 kB
oss-experimental/react-reconciler/cjs/react-reconciler.production.min.js = 114.88 kB 114.64 kB = 35.07 kB 35.05 kB
facebook-www/ReactDOM-dev.classic.js = 1,434.64 kB 1,431.60 kB = 310.20 kB 309.93 kB
facebook-www/ReactDOMTesting-dev.modern.js = 1,425.09 kB 1,422.06 kB = 309.07 kB 308.80 kB
facebook-www/ReactDOM-dev.modern.js = 1,406.75 kB 1,403.71 kB = 304.65 kB 304.39 kB
oss-experimental/react-dom/cjs/react-dom-unstable_testing.development.js = 1,328.40 kB 1,325.52 kB = 294.97 kB 294.69 kB
oss-stable/react-reconciler/cjs/react-reconciler.production.min.js = 110.69 kB 110.45 kB = 33.82 kB 33.80 kB
oss-stable-semver/react-reconciler/cjs/react-reconciler.production.min.js = 110.66 kB 110.42 kB = 33.80 kB 33.78 kB
oss-experimental/react-dom/umd/react-dom.development.js = 1,373.59 kB 1,370.59 kB = 293.55 kB 293.29 kB
oss-experimental/react-dom/cjs/react-dom.development.js = 1,310.34 kB 1,307.46 kB = 290.61 kB 290.35 kB
facebook-www/ReactDOMTesting-prod.classic.js = 582.03 kB 580.74 kB = 103.75 kB 103.69 kB
oss-experimental/react-test-renderer/umd/react-test-renderer.production.min.js = 103.99 kB 103.76 kB = 32.26 kB 32.22 kB
oss-stable/react-test-renderer/umd/react-test-renderer.production.min.js = 103.86 kB 103.63 kB = 32.21 kB 32.15 kB
oss-stable-semver/react-test-renderer/umd/react-test-renderer.production.min.js = 103.81 kB 103.58 kB = 32.18 kB 32.12 kB
oss-experimental/react-test-renderer/cjs/react-test-renderer.production.min.js = 103.60 kB 103.37 kB = 31.82 kB 31.79 kB
oss-stable/react-dom/umd/react-dom.development.js = 1,327.28 kB 1,324.28 kB = 283.98 kB 283.74 kB
oss-stable-semver/react-dom/umd/react-dom.development.js = 1,327.26 kB 1,324.26 kB = 283.96 kB 283.71 kB
oss-stable/react-test-renderer/cjs/react-test-renderer.production.min.js = 103.48 kB 103.24 kB = 31.79 kB 31.76 kB
oss-stable-semver/react-test-renderer/cjs/react-test-renderer.production.min.js = 103.43 kB 103.19 kB = 31.76 kB 31.73 kB
oss-stable/react-dom/cjs/react-dom.development.js = 1,266.10 kB 1,263.22 kB = 281.00 kB 280.73 kB
oss-stable-semver/react-dom/cjs/react-dom.development.js = 1,266.07 kB 1,263.19 kB = 280.97 kB 280.70 kB
facebook-www/ReactDOMTesting-prod.modern.js = 567.56 kB 566.26 kB = 101.30 kB 101.22 kB
facebook-www/ReactDOM-prod.classic.js = 567.22 kB 565.93 kB = 100.04 kB 99.99 kB
facebook-www/ReactDOM-prod.modern.js = 551.02 kB 549.72 kB = 97.21 kB 97.13 kB
oss-experimental/react-art/cjs/react-art.production.min.js = 98.31 kB 98.08 kB = 30.18 kB 30.14 kB
oss-stable/react-art/cjs/react-art.production.min.js = 94.48 kB 94.25 kB = 29.06 kB 29.03 kB
oss-stable-semver/react-art/cjs/react-art.production.min.js = 94.43 kB 94.20 kB = 29.03 kB 29.00 kB
facebook-www/ReactTestRenderer-dev.classic.js = 805.24 kB 803.23 kB = 174.85 kB 174.57 kB
facebook-www/ReactTestRenderer-dev.modern.js = 805.23 kB 803.22 kB = 174.85 kB 174.57 kB
facebook-react-native/react-test-renderer/cjs/ReactTestRenderer-dev.js = 798.54 kB 796.53 kB = 173.91 kB 173.63 kB
oss-experimental/react-test-renderer/umd/react-test-renderer.development.js = 824.49 kB 822.34 kB = 174.55 kB 174.29 kB
oss-stable/react-test-renderer/umd/react-test-renderer.development.js = 824.10 kB 821.95 kB = 174.46 kB 174.20 kB
oss-stable-semver/react-test-renderer/umd/react-test-renderer.development.js = 824.08 kB 821.93 kB = 174.43 kB 174.17 kB
oss-experimental/react-test-renderer/cjs/react-test-renderer.development.js = 787.21 kB 785.14 kB = 172.73 kB 172.46 kB
oss-stable/react-test-renderer/cjs/react-test-renderer.development.js = 786.85 kB 784.77 kB = 172.65 kB 172.38 kB
oss-stable-semver/react-test-renderer/cjs/react-test-renderer.development.js = 786.82 kB 784.75 kB = 172.62 kB 172.35 kB
react-native/implementations/ReactNativeRenderer-dev.js = 878.97 kB 876.44 kB = 192.69 kB 192.39 kB
oss-experimental/react-reconciler/cjs/react-reconciler.profiling.min.js = 123.91 kB 123.55 kB = 37.29 kB 37.25 kB
react-native/implementations/ReactFabric-dev.js = 863.32 kB 860.79 kB = 188.36 kB 188.06 kB
react-native/implementations/ReactNativeRenderer-dev.fb.js = 905.55 kB 902.89 kB = 197.41 kB 197.12 kB
react-native/implementations/ReactFabric-dev.fb.js = 889.89 kB 887.23 kB = 192.96 kB 192.67 kB
facebook-www/ReactDOM-profiling.classic.js = 597.76 kB 595.96 kB = 104.52 kB 104.40 kB
oss-stable/react-reconciler/cjs/react-reconciler.profiling.min.js = 119.71 kB 119.35 kB = 36.03 kB 35.99 kB
oss-stable-semver/react-reconciler/cjs/react-reconciler.profiling.min.js = 119.68 kB 119.32 kB = 36.01 kB 35.97 kB
facebook-www/ReactDOM-profiling.modern.js = 581.49 kB 579.69 kB = 101.69 kB 101.56 kB
oss-experimental/react-reconciler/cjs/react-reconciler.development.js = 925.49 kB 922.61 kB = 198.66 kB 198.41 kB
oss-experimental/react-art/umd/react-art.development.js = 943.39 kB 940.39 kB = 199.78 kB 199.51 kB
oss-stable/react-reconciler/cjs/react-reconciler.development.js = 902.01 kB 899.13 kB = 193.92 kB 193.67 kB
oss-stable-semver/react-reconciler/cjs/react-reconciler.development.js = 901.99 kB 899.11 kB = 193.89 kB 193.63 kB
oss-stable/react-art/umd/react-art.development.js = 920.32 kB 917.32 kB = 195.43 kB 195.15 kB
oss-stable-semver/react-art/umd/react-art.development.js = 920.29 kB 917.29 kB = 195.40 kB 195.12 kB
facebook-www/ReactART-dev.classic.js = 916.55 kB 913.51 kB = 195.62 kB 195.36 kB
facebook-www/ReactART-dev.modern.js = 905.34 kB 902.30 kB = 193.32 kB 193.05 kB
react-native/implementations/ReactNativeRenderer-prod.fb.js = 334.85 kB 333.69 kB = 59.57 kB 59.49 kB
oss-experimental/react-art/cjs/react-art.development.js = 827.45 kB 824.57 kB = 180.73 kB 180.46 kB
react-native/implementations/ReactNativeRenderer-prod.js = 328.23 kB 327.07 kB = 58.12 kB 58.04 kB
react-native/implementations/ReactFabric-prod.fb.js = 326.01 kB 324.85 kB = 57.87 kB 57.79 kB
oss-stable/react-art/cjs/react-art.development.js = 805.47 kB 802.59 kB = 176.37 kB 176.09 kB
oss-stable-semver/react-art/cjs/react-art.development.js = 805.44 kB 802.56 kB = 176.35 kB 176.07 kB
react-native/implementations/ReactFabric-prod.js = 319.29 kB 318.13 kB = 56.39 kB 56.33 kB
facebook-www/ReactART-prod.classic.js = 346.36 kB 345.06 kB = 58.98 kB 58.88 kB
facebook-www/ReactART-prod.modern.js = 335.37 kB 334.07 kB = 57.06 kB 56.96 kB
facebook-react-native/react-test-renderer/cjs/ReactTestRenderer-profiling.js = 313.42 kB 312.16 kB = 55.40 kB 55.32 kB
react-native/implementations/ReactNativeRenderer-profiling.js = 347.78 kB 346.31 kB = 61.38 kB 61.27 kB
facebook-react-native/react-test-renderer/cjs/ReactTestRenderer-prod.js = 297.56 kB 296.30 kB = 52.99 kB 52.88 kB
react-native/implementations/ReactFabric-profiling.js = 338.82 kB 337.36 kB = 59.62 kB 59.51 kB
react-native/implementations/ReactNativeRenderer-profiling.fb.js = 362.24 kB 360.61 kB = 63.84 kB 63.69 kB
react-native/implementations/ReactFabric-profiling.fb.js = 353.41 kB 351.78 kB = 62.11 kB 61.96 kB

Generated by 🚫 dangerJS against c5d41a4

Copy link

@AbdullahWins AbdullahWins left a comment

Choose a reason for hiding this comment

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

Good Job!!!

@eps1lon
Copy link
Collaborator

eps1lon commented Nov 15, 2024

Landed in #31029

@eps1lon eps1lon closed this Nov 15, 2024
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.

5 participants