Skip to content
New issue

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

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

Already on GitHub? # to your account

createRoot API is no longer strict by default #21417

Merged

Conversation

bvaughn
Copy link
Contributor

@bvaughn bvaughn commented May 3, 2021

Backs out some of the changes from #20849.

This PR has been split into three commits to simplify the review process:

  • The createRoot API no longer defaults to strict mode 1
  • The unstable_strictLevel option has also been removed for now
  • Tests have been updated accordingly

1 Support was left in place for defaulting a root into "strict effects mode" if the createRootStrictEffectsByDefault feature flag is enabled, but this feature flag is only enabled within Facebook behind a GK.

Brian Vaughn added 2 commits May 3, 2021 15:55
Support was left in place for defaulting a root into "strict effects mode" if the 'createRootStrictEffectsByDefault' feature flag is enabled, but this feature flag is only enabled within Facebook behind a GK.
@bvaughn bvaughn force-pushed the createRoot-default-StrictMode-level-0 branch from 61b9d73 to 9091fc5 Compare May 3, 2021 20:13
@facebook-github-bot facebook-github-bot added CLA Signed React Core Team Opened by a member of the React Core Team labels May 3, 2021
@sizebot
Copy link

sizebot commented May 3, 2021

Comparing: 79740da...43b07dd

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.49 kB 122.49 kB = 39.38 kB 39.38 kB
oss-experimental/react-dom/cjs/react-dom.production.min.js = 129.02 kB 128.91 kB = 41.46 kB 41.41 kB
facebook-www/ReactDOM-prod.classic.js = 406.89 kB 406.33 kB = 75.31 kB 75.24 kB
facebook-www/ReactDOM-prod.modern.js = 394.75 kB 394.31 kB = 73.35 kB 73.27 kB
facebook-www/ReactDOMForked-prod.classic.js = 406.89 kB 406.33 kB = 75.31 kB 75.24 kB

Significant size changes

Includes any change greater than 0.2%:

Expand to show
Name +/- Base Current +/- gzip Base gzip Current gzip
facebook-react-native/react-test-renderer/cjs/ReactTestRenderer-profiling.js = 245.05 kB 244.54 kB = 45.05 kB 44.94 kB
facebook-react-native/react-test-renderer/cjs/ReactTestRenderer-prod.js = 238.74 kB 238.23 kB = 43.88 kB 43.78 kB

Generated by 🚫 dangerJS against 43b07dd

@bvaughn bvaughn force-pushed the createRoot-default-StrictMode-level-0 branch from 9091fc5 to 43b07dd Compare May 3, 2021 20:25
]);
it('does not warn in concurrent mode', () => {
const root = ReactDOM.unstable_createRoot(document.createElement('div'));
root.render(<App />);
Copy link
Member

Choose a reason for hiding this comment

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

Do we support .not.toErrorDev()?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Any errors that aren't explicitly caught with toErrorDev cause test failures.

@bvaughn bvaughn merged commit 15fb8c3 into facebook:master May 3, 2021
@bvaughn bvaughn deleted the createRoot-default-StrictMode-level-0 branch May 3, 2021 20:57
facebook-github-bot pushed a commit to facebook/react-native that referenced this pull request May 11, 2021
Summary:
This sync includes the following changes:
- **[b8fda6cab](facebook/react@b8fda6cab )**: [React Native] Set allowConcurrentByDefault = true ([#21491](facebook/react#21491)) //<Ricky>//
- **[1bb8987cc](facebook/react@1bb8987cc )**: Renamed function in error log issue #21446 ([#21449](facebook/react#21449)) //<faebzz>//
- **[bd070eb2c](facebook/react@bd070eb2c )**: Enable setJSResponder/setIsJSResponder for React Native Fabric ([#21439](facebook/react#21439)) //<Joshua Gross>//
- **[e9a4a44aa](facebook/react@e9a4a44aa )**: Add back root override for strict mode ([#21428](facebook/react#21428)) //<Ricky>//
- **[d1542de3a](facebook/react@d1542de3a )**: Unify React.memo and React.forwardRef display name logic ([#21392](facebook/react#21392)) //<Brian Vaughn>//
- **[9a130e1de](facebook/react@9a130e1de )**: StrictMode includes strict effects by default ([#21418](facebook/react#21418)) //<Brian Vaughn>//
- **[15fb8c304](facebook/react@15fb8c304 )**: createRoot API is no longer strict by default ([#21417](facebook/react#21417)) //<Brian Vaughn>//
- **[aea7c2aab](facebook/react@aea7c2aab )**: Re-land "Support nesting of startTransition and flushSync (alt) ([#21149](facebook/react#21149))" //<Andrew Clark>//
- **[bacc87068](facebook/react@bacc87068 )**: Re-land "Flush discrete passive effects before paint ([#21150](facebook/react#21150))" //<Andrew Clark>//
- **[098600c42](facebook/react@098600c42 )**: Re-land "Fix: flushSync changes priority inside effect ([#21122](facebook/react#21122))" //<Andrew Clark>//
- **[df420bc0a](facebook/react@df420bc0a )**: Re-land "Delete LanePriority type ([#21090](facebook/react#21090))" //<Andrew Clark>//
- **[ab5b37927](facebook/react@ab5b37927 )**: Re-land "Clean up host pointers in level 2 of clean-up flag ([#21112](facebook/react#21112))" //<Andrew Clark>//
- **[fd907c1f1](facebook/react@fd907c1f1 )**: Re-land "Use highest priority lane to detect interruptions ([#21088](facebook/react#21088))"" //<Andrew Clark>//
- **[269dd6ec5](facebook/react@269dd6ec5 )**: subtreeFlag warning: Fix legacy suspense false positive ([#21388](facebook/react#21388)) //<Andrew Clark>//
- **[9e9dac650](facebook/react@9e9dac650 )**: Add unstable_concurrentUpdatesByDefault ([#21227](facebook/react#21227)) //<Ricky>//
- **[86f3385d9](facebook/react@86f3385d9 )**: Revert "Use highest priority lane to detect interruptions ([#21088](facebook/react#21088))" //<Andrew Clark>//
- **[c6702656f](facebook/react@c6702656f )**: Revert "Clean up host pointers in level 2 of clean-up flag ([#21112](facebook/react#21112))" //<Andrew Clark>//
- **[1bd41c664](facebook/react@1bd41c664 )**: Revert "Delete LanePriority type ([#21090](facebook/react#21090))" //<Andrew Clark>//
- **[e7e0a90bd](facebook/react@e7e0a90bd )**: Revert "Fix: flushSync changes priority inside effect ([#21122](facebook/react#21122))" //<Andrew Clark>//
- **[7bac7607a](facebook/react@7bac7607a )**: Revert "Flush discrete passive effects before paint ([#21150](facebook/react#21150))" //<Andrew Clark>//
- **[207d4c3a5](facebook/react@207d4c3a5 )**: Revert "Support nesting of startTransition and flushSync (alt) ([#21149](facebook/react#21149))" //<Andrew Clark>//

Changelog:
[General][Changed] - React Native sync for revisions 2a7bb41...b8fda6c

jest_e2e[run_all_tests]

Reviewed By: yungsters

Differential Revision: D28351439

fbshipit-source-id: 29620f96c9fb9f02b0d856111d3882d3c69fd1c5
koto pushed a commit to koto/react that referenced this pull request Jun 15, 2021
@gaearon gaearon mentioned this pull request Mar 29, 2022
# for free to join this conversation on GitHub. Already have an account? # 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.

4 participants