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

Add more feature flag checks #24037

Merged
merged 1 commit into from
Mar 8, 2022
Merged

Conversation

sebmarkbage
Copy link
Collaborator

@sebmarkbage sebmarkbage commented Mar 8, 2022

This strips some more content out of the stable build.

A neat trick for finding missing feature flag checks is to find Symbol.for usages that shouldn't be there.

Unfortunately these Symbols don't get DCE. I think that's because they're still used in case statements.

Rollout removes most of our Symbol.for calls but it's not smart enough in all cases. Closure doesn't seem smart enough to know it's not a side-effect. So the net effect is that we still have some unused Symbol.for(...) calls in the bundle. After this change they're not used though.

mode |= DebugTracingMode;
break;
}
// eslint-disable-next-line no-fallthrough
Copy link
Collaborator Author

@sebmarkbage sebmarkbage Mar 8, 2022

Choose a reason for hiding this comment

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

The trick is to place these at the bottom so if the condition is false it's the same as default which means that the case is unnecessary which Closure is smart enough to understand but not Rollup.

@sizebot
Copy link

sizebot commented Mar 8, 2022

Comparing: e09518e...ba7f8ef

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 = 131.46 kB 131.38 kB = 42.06 kB 42.04 kB
oss-experimental/react-dom/cjs/react-dom.production.min.js = 136.12 kB 136.07 kB +0.03% 43.41 kB 43.42 kB
facebook-www/ReactDOM-prod.classic.js +0.02% 435.09 kB 435.17 kB +0.04% 79.61 kB 79.65 kB
facebook-www/ReactDOM-prod.modern.js +0.04% 421.59 kB 421.77 kB +0.06% 77.60 kB 77.64 kB
facebook-www/ReactDOMForked-prod.classic.js +0.02% 435.09 kB 435.17 kB +0.04% 79.62 kB 79.65 kB
facebook-react-native/react-is/cjs/ReactIs-prod.js = 4.70 kB 4.59 kB = 1.15 kB 1.12 kB
facebook-react-native/react-is/cjs/ReactIs-profiling.js = 4.70 kB 4.59 kB = 1.15 kB 1.12 kB

Significant size changes

Includes any change greater than 0.2%:

Expand to show
Name +/- Base Current +/- gzip Base gzip Current gzip
facebook-www/ReactIs-prod.classic.js +1.30% 4.92 kB 4.98 kB +2.22% 1.21 kB 1.24 kB
facebook-www/ReactIs-prod.modern.js +1.30% 4.92 kB 4.98 kB +2.22% 1.21 kB 1.24 kB
oss-experimental/react-is/cjs/react-is.development.js +1.27% 7.14 kB 7.23 kB +3.19% 1.92 kB 1.98 kB
oss-stable-semver/react-is/cjs/react-is.development.js +1.24% 7.33 kB 7.42 kB +2.97% 1.99 kB 2.05 kB
oss-stable/react-is/cjs/react-is.development.js +1.24% 7.33 kB 7.42 kB +2.97% 1.99 kB 2.05 kB
oss-experimental/react-is/umd/react-is.development.js +1.24% 7.68 kB 7.78 kB +3.05% 2.00 kB 2.06 kB
oss-stable-semver/react-is/umd/react-is.development.js +1.21% 7.88 kB 7.98 kB +2.95% 2.07 kB 2.13 kB
oss-stable/react-is/umd/react-is.development.js +1.21% 7.88 kB 7.98 kB +2.95% 2.07 kB 2.13 kB
facebook-www/ReactIs-dev.modern.js +0.25% 9.43 kB 9.45 kB +0.20% 2.53 kB 2.54 kB
facebook-www/ReactIs-dev.classic.js +0.25% 9.43 kB 9.45 kB +0.24% 2.53 kB 2.54 kB
oss-experimental/react-dom/umd/react-dom-server.browser.production.min.js = 33.79 kB 33.72 kB = 11.63 kB 11.59 kB
oss-experimental/react-dom/cjs/react-dom-server.browser.production.min.js = 33.66 kB 33.59 kB = 11.49 kB 11.46 kB
oss-experimental/react-dom/umd/react-dom-server-legacy.browser.production.min.js = 32.67 kB 32.61 kB = 11.00 kB 10.98 kB
oss-experimental/react-dom/cjs/react-dom-server-legacy.browser.production.min.js = 32.52 kB 32.46 kB = 10.85 kB 10.83 kB
facebook-www/JSXDEVRuntime-dev.classic.js = 45.12 kB 45.02 kB = 12.80 kB 12.78 kB
facebook-www/JSXDEVRuntime-dev.modern.js = 45.12 kB 45.02 kB = 12.80 kB 12.78 kB
facebook-www/ReactDOMServer-prod.classic.js = 47.19 kB 47.06 kB = 11.04 kB 11.01 kB
oss-stable-semver/react-dom/cjs/react-dom-server.node.production.min.js = 36.19 kB 36.07 kB = 12.16 kB 12.12 kB
oss-stable/react-dom/cjs/react-dom-server.node.production.min.js = 36.19 kB 36.07 kB = 12.16 kB 12.12 kB
oss-stable-semver/react-dom/cjs/react-dom-server-legacy.node.production.min.js = 35.96 kB 35.84 kB = 11.99 kB 11.95 kB
oss-stable/react-dom/cjs/react-dom-server-legacy.node.production.min.js = 35.96 kB 35.84 kB = 11.99 kB 11.95 kB
oss-experimental/react-server/cjs/react-server.production.min.js = 19.98 kB 19.92 kB = 6.89 kB 6.86 kB
oss-stable-semver/react/cjs/react-jsx-runtime.development.js = 42.02 kB 41.87 kB = 12.27 kB 12.26 kB
oss-stable/react/cjs/react-jsx-runtime.development.js = 42.02 kB 41.87 kB = 12.27 kB 12.26 kB
oss-stable-semver/react/cjs/react-jsx-dev-runtime.development.js = 41.42 kB 41.27 kB = 12.10 kB 12.09 kB
oss-stable/react/cjs/react-jsx-dev-runtime.development.js = 41.42 kB 41.27 kB = 12.10 kB 12.09 kB
oss-stable-semver/react-dom/umd/react-dom-server.browser.production.min.js = 33.54 kB 33.42 kB = 11.53 kB 11.48 kB
oss-stable/react-dom/umd/react-dom-server.browser.production.min.js = 33.54 kB 33.42 kB = 11.53 kB 11.48 kB
oss-stable-semver/react-dom/cjs/react-dom-server.browser.production.min.js = 33.41 kB 33.29 kB = 11.40 kB 11.36 kB
oss-stable/react-dom/cjs/react-dom-server.browser.production.min.js = 33.41 kB 33.29 kB = 11.40 kB 11.36 kB
oss-stable-semver/react-dom/umd/react-dom-server-legacy.browser.production.min.js = 32.42 kB 32.30 kB = 10.90 kB 10.86 kB
oss-stable/react-dom/umd/react-dom-server-legacy.browser.production.min.js = 32.42 kB 32.30 kB = 10.90 kB 10.86 kB
oss-stable-semver/react-dom/cjs/react-dom-server-legacy.browser.production.min.js = 32.27 kB 32.15 kB = 10.76 kB 10.72 kB
oss-stable/react-dom/cjs/react-dom-server-legacy.browser.production.min.js = 32.27 kB 32.15 kB = 10.76 kB 10.72 kB
oss-stable-semver/react-server/cjs/react-server.production.min.js = 19.80 kB 19.68 kB = 6.83 kB 6.79 kB
oss-stable/react-server/cjs/react-server.production.min.js = 19.80 kB 19.68 kB = 6.83 kB 6.79 kB
oss-experimental/react-reconciler/cjs/react-reconciler-reflection.development.js = 18.25 kB 18.13 kB = 5.24 kB 5.22 kB
facebook-react-native/react/cjs/JSXRuntime-dev.js = 36.40 kB 36.10 kB = 10.52 kB 10.44 kB
facebook-react-native/react/cjs/JSXDEVRuntime-dev.js = 35.80 kB 35.50 kB = 10.34 kB 10.27 kB
facebook-react-native/react-is/cjs/ReactIs-dev.js = 7.22 kB 7.16 kB = 1.95 kB 1.94 kB
oss-stable-semver/react-reconciler/cjs/react-reconciler-reflection.development.js = 18.25 kB 18.02 kB = 5.24 kB 5.19 kB
oss-stable/react-reconciler/cjs/react-reconciler-reflection.development.js = 18.25 kB 18.02 kB = 5.24 kB 5.19 kB
oss-experimental/react-is/umd/react-is.production.min.js = 2.39 kB 2.34 kB = 0.89 kB 0.88 kB
oss-stable-semver/react-is/umd/react-is.production.min.js = 2.35 kB 2.31 kB = 0.88 kB 0.87 kB
oss-stable/react-is/umd/react-is.production.min.js = 2.35 kB 2.31 kB = 0.88 kB 0.87 kB
oss-experimental/react-is/cjs/react-is.production.min.js = 2.34 kB 2.30 kB = 0.81 kB 0.80 kB
oss-stable-semver/react-is/cjs/react-is.production.min.js = 2.31 kB 2.26 kB = 0.80 kB 0.78 kB
oss-stable/react-is/cjs/react-is.production.min.js = 2.31 kB 2.26 kB = 0.80 kB 0.78 kB
facebook-react-native/react-is/cjs/ReactIs-prod.js = 4.70 kB 4.59 kB = 1.15 kB 1.12 kB
facebook-react-native/react-is/cjs/ReactIs-profiling.js = 4.70 kB 4.59 kB = 1.15 kB 1.12 kB

Generated by 🚫 dangerJS against ba7f8ef

@sebmarkbage sebmarkbage force-pushed the gatemoresymbols branch 2 times, most recently from 796cb7d to cf3fbf9 Compare March 8, 2022 04:50
@sebmarkbage sebmarkbage merged commit 57799b9 into facebook:main Mar 8, 2022
facebook-github-bot pushed a commit to facebook/react-native that referenced this pull request Mar 24, 2022
Summary:
This sync includes the following changes:
- **[3f8990898](facebook/react@3f8990898 )**: Fix test-build-devtools if build was generated by build-for-devtools ([#24088](facebook/react#24088)) //<Sebastian Silbermann>//
- **[577f2de46](facebook/react@577f2de46 )**: enableCacheElement flag ([#24131](facebook/react#24131)) //<David McCabe>//
- **[2e0d86d22](facebook/react@2e0d86d22 )**: Allow updating dehydrated root at lower priority without forcing client render ([#24082](facebook/react#24082)) //<Andrew Clark>//
- **[dbe9e732a](facebook/react@dbe9e732a )**: Avoid conditions where control flow is sufficient ([#24126](facebook/react#24126)) //<Sebastian Markbåge>//
- **[b075f9742](facebook/react@b075f9742 )**: Fix dispatch config type for skipBubbling ([#24109](facebook/react#24109)) //<Luna>//
- **[ef23a9ee8](facebook/react@ef23a9ee8 )**: Flag for text hydration mismatch ([#24107](facebook/react#24107)) //<salazarm>//
- **[0412f0c1a](facebook/react@0412f0c1a )**: add offscreen state node ([#24026](facebook/react#24026)) //<Luna Ruan>//
- **[43eb28339](facebook/react@43eb28339 )**: Add skipBubbling property to dispatch config ([#23366](facebook/react#23366)) //<Luna>//
- **[832e2987e](facebook/react@832e2987e )**: Revert accdientally merged PR ([#24081](facebook/react#24081)) //<Andrew Clark>//
- **[02b65fd8c](facebook/react@02b65fd8c )**: Allow updates at lower pri without forcing client render //<Andrew Clark>//
- **[83b941a51](facebook/react@83b941a51 )**: Add isRootDehydrated function //<Andrew Clark>//
- **[c8e4789e2](facebook/react@c8e4789e2 )**: Pass children to hydration root constructor //<Andrew Clark>//
- **[581f0c42e](facebook/react@581f0c42e )**: [Flight] add support for Lazy components in Flight server ([#24068](facebook/react#24068)) //<Josh Story>//
- **[72a933d28](facebook/react@72a933d28 )**: Gate legacy hidden ([#24047](facebook/react#24047)) //<Sebastian Markbåge>//
- **[b9de50d2f](facebook/react@b9de50d2f )**: Update test to reset modules instead of using private state ([#24055](facebook/react#24055)) //<Sebastian Markbåge>//
- **[c91892ec3](facebook/react@c91892ec3 )**: [Fizz] Don't flush empty segments ([#24054](facebook/react#24054)) //<Sebastian Markbåge>//
- **[d5f1b067c](facebook/react@d5f1b067c )**: [ServerContext] Flight support for ServerContext ([#23244](facebook/react#23244)) //<salazarm>//
- **[6edd55a3f](facebook/react@6edd55a3f )**: Gate unstable_expectedLoadTime on enableCPUSuspense ([#24038](facebook/react#24038)) //<Sebastian Markbåge>//
- **[57799b912](facebook/react@57799b912 )**: Add more feature flag checks ([#24037](facebook/react#24037)) //<Sebastian Markbåge>//
- **[e09518e5b](facebook/react@e09518e5b )**: [Fizz] write chunks to a buffer with no re-use ([#24034](facebook/react#24034)) //<Josh Story>//
- **[14c2be8da](facebook/react@14c2be8da )**: Rename Node SSR Callbacks to onShellReady/onAllReady and Other Fixes ([#24030](facebook/react#24030)) //<Sebastian Markbåge>//
- **[cb1e7b1c6](facebook/react@cb1e7b1c6 )**: Move onCompleteAll to .allReady Promise ([#24025](facebook/react#24025)) //<Sebastian Markbåge>//
- **[566285761](facebook/react@566285761 )**: [Fizz] Export debug function for FB ([#24024](facebook/react#24024)) //<salazarm>//
- **[05c283c3c](facebook/react@05c283c3c )**: Fabric HostComponent as EventEmitter: support add/removeEventListener (unstable only) ([#23386](facebook/react#23386)) //<Joshua Gross>//
- **[08644348b](facebook/react@08644348b )**: Added unit Tests in the ReactART, increasing the code coverage ([#23195](facebook/react#23195)) //<BIKI DAS>//
- **[feefe437f](facebook/react@feefe437f )**: Refactor Cache Code ([#23393](facebook/react#23393)) //<Luna Ruan>//

Changelog:
[General][Changed] - React Native sync for revisions 1780659...1159ff6

jest_e2e[run_all_tests]

Reviewed By: lunaleaps

Differential Revision: D34928167

fbshipit-source-id: 8c386f2be5871981d217ab9a514892ed88eafcfb
zhengjitf pushed a commit to zhengjitf/react that referenced this pull request Apr 15, 2022
Saadnajmi pushed a commit to Saadnajmi/react-native-macos that referenced this pull request Jan 15, 2023
Summary:
This sync includes the following changes:
- **[3f8990898](facebook/react@3f8990898 )**: Fix test-build-devtools if build was generated by build-for-devtools ([facebook#24088](facebook/react#24088)) //<Sebastian Silbermann>//
- **[577f2de46](facebook/react@577f2de46 )**: enableCacheElement flag ([facebook#24131](facebook/react#24131)) //<David McCabe>//
- **[2e0d86d22](facebook/react@2e0d86d22 )**: Allow updating dehydrated root at lower priority without forcing client render ([facebook#24082](facebook/react#24082)) //<Andrew Clark>//
- **[dbe9e732a](facebook/react@dbe9e732a )**: Avoid conditions where control flow is sufficient ([facebook#24126](facebook/react#24126)) //<Sebastian Markbåge>//
- **[b075f9742](facebook/react@b075f9742 )**: Fix dispatch config type for skipBubbling ([facebook#24109](facebook/react#24109)) //<Luna>//
- **[ef23a9ee8](facebook/react@ef23a9ee8 )**: Flag for text hydration mismatch ([facebook#24107](facebook/react#24107)) //<salazarm>//
- **[0412f0c1a](facebook/react@0412f0c1a )**: add offscreen state node ([facebook#24026](facebook/react#24026)) //<Luna Ruan>//
- **[43eb28339](facebook/react@43eb28339 )**: Add skipBubbling property to dispatch config ([facebook#23366](facebook/react#23366)) //<Luna>//
- **[832e2987e](facebook/react@832e2987e )**: Revert accdientally merged PR ([facebook#24081](facebook/react#24081)) //<Andrew Clark>//
- **[02b65fd8c](facebook/react@02b65fd8c )**: Allow updates at lower pri without forcing client render //<Andrew Clark>//
- **[83b941a51](facebook/react@83b941a51 )**: Add isRootDehydrated function //<Andrew Clark>//
- **[c8e4789e2](facebook/react@c8e4789e2 )**: Pass children to hydration root constructor //<Andrew Clark>//
- **[581f0c42e](facebook/react@581f0c42e )**: [Flight] add support for Lazy components in Flight server ([facebook#24068](facebook/react#24068)) //<Josh Story>//
- **[72a933d28](facebook/react@72a933d28 )**: Gate legacy hidden ([facebook#24047](facebook/react#24047)) //<Sebastian Markbåge>//
- **[b9de50d2f](facebook/react@b9de50d2f )**: Update test to reset modules instead of using private state ([facebook#24055](facebook/react#24055)) //<Sebastian Markbåge>//
- **[c91892ec3](facebook/react@c91892ec3 )**: [Fizz] Don't flush empty segments ([facebook#24054](facebook/react#24054)) //<Sebastian Markbåge>//
- **[d5f1b067c](facebook/react@d5f1b067c )**: [ServerContext] Flight support for ServerContext ([facebook#23244](facebook/react#23244)) //<salazarm>//
- **[6edd55a3f](facebook/react@6edd55a3f )**: Gate unstable_expectedLoadTime on enableCPUSuspense ([facebook#24038](facebook/react#24038)) //<Sebastian Markbåge>//
- **[57799b912](facebook/react@57799b912 )**: Add more feature flag checks ([facebook#24037](facebook/react#24037)) //<Sebastian Markbåge>//
- **[e09518e5b](facebook/react@e09518e5b )**: [Fizz] write chunks to a buffer with no re-use ([facebook#24034](facebook/react#24034)) //<Josh Story>//
- **[14c2be8da](facebook/react@14c2be8da )**: Rename Node SSR Callbacks to onShellReady/onAllReady and Other Fixes ([facebook#24030](facebook/react#24030)) //<Sebastian Markbåge>//
- **[cb1e7b1c6](facebook/react@cb1e7b1c6 )**: Move onCompleteAll to .allReady Promise ([facebook#24025](facebook/react#24025)) //<Sebastian Markbåge>//
- **[566285761](facebook/react@566285761 )**: [Fizz] Export debug function for FB ([facebook#24024](facebook/react#24024)) //<salazarm>//
- **[05c283c3c](facebook/react@05c283c3c )**: Fabric HostComponent as EventEmitter: support add/removeEventListener (unstable only) ([facebook#23386](facebook/react#23386)) //<Joshua Gross>//
- **[08644348b](facebook/react@08644348b )**: Added unit Tests in the ReactART, increasing the code coverage ([facebook#23195](facebook/react#23195)) //<BIKI DAS>//
- **[feefe437f](facebook/react@feefe437f )**: Refactor Cache Code ([facebook#23393](facebook/react#23393)) //<Luna Ruan>//

Changelog:
[General][Changed] - React Native sync for revisions 1780659...1159ff6

jest_e2e[run_all_tests]

Reviewed By: lunaleaps

Differential Revision: D34928167

fbshipit-source-id: 8c386f2be5871981d217ab9a514892ed88eafcfb
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants