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

Fix unwinding context during selective hydration #25876

Merged
merged 7 commits into from
Dec 15, 2022

Conversation

tyao1
Copy link
Contributor

@tyao1 tyao1 commented Dec 13, 2022

Depends on #25867

This PR includes the previously reverted #25695 and #25754, and the fix for the regression test added in #25867.

Tested internally with a previous failed test, and it's passing now.

tyao1 and others added 5 commits December 9, 2022 19:44
When an update flows into a dehydrated boundary, React cannot apply the
update until the boundary has finished hydrating. The way this currently
works is by scheduling a slightly higher priority task on the boundary,
using a special lane that's reserved only for this purpose. Because the
task is slightly higher priority, on the next turn of the work loop, the
Scheduler will force the work loop to yield (i.e. shouldYield starts
returning `true` because there's a higher priority task).

The downside of this approach is that it only works when time slicing is
enabled. It doesn't work for synchronous updates, because the
synchronous work loop does not consult the Scheduler on each iteration.

We plan to add support for selective hydration during synchronous
updates, too, so we need to model this some other way.

I've added a special internal exception that can be thrown to force the
work loop to interrupt the work-in-progress tree. Because it's thrown
from a React-only execution stack, throwing isn't strictly necessary —
we could instead modify some internal work loop state. But using an
exception means we don't need to check for this case on every iteration
of the work loop. So doing it this way moves the check out of the fast
path.

The ideal implementation wouldn't need to unwind the stack at all — we
should be able to hydrate the subtree and then apply the update all
within a single render phase. This is how we intend to implement it in
the future, but this requires a refactor to how we handle "stack"
variables, which are currently pushed to a per-render array. We need to
make this stack resumable, like how context works in Flight and Fizz.
@tyao1 tyao1 requested a review from acdlite December 13, 2022 02:21
@facebook-github-bot facebook-github-bot added CLA Signed React Core Team Opened by a member of the React Core Team labels Dec 13, 2022
@sizebot
Copy link

sizebot commented Dec 13, 2022

Comparing: b14d7fa...c27ac20

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 +0.09% 154.37 kB 154.51 kB +0.10% 48.97 kB 49.02 kB
oss-experimental/react-dom/cjs/react-dom.production.min.js +0.09% 156.29 kB 156.44 kB +0.08% 49.63 kB 49.67 kB
facebook-www/ReactDOM-prod.classic.js +0.12% 533.12 kB 533.78 kB +0.09% 94.96 kB 95.04 kB
facebook-www/ReactDOM-prod.modern.js +0.13% 518.22 kB 518.88 kB +0.10% 92.76 kB 92.85 kB
facebook-www/ReactDOMForked-prod.classic.js +0.12% 533.12 kB 533.78 kB +0.09% 94.96 kB 95.04 kB

Significant size changes

Includes any change greater than 0.2%:

Expand to show
Name +/- Base Current +/- gzip Base gzip Current gzip
oss-stable-semver/react-test-renderer/cjs/react-test-renderer.development.js +0.33% 749.91 kB 752.41 kB +0.36% 162.65 kB 163.25 kB
oss-stable/react-test-renderer/cjs/react-test-renderer.development.js +0.33% 749.93 kB 752.44 kB +0.36% 162.68 kB 163.27 kB
oss-experimental/react-test-renderer/cjs/react-test-renderer.development.js +0.33% 750.03 kB 752.54 kB +0.36% 162.71 kB 163.30 kB
oss-stable-semver/react-test-renderer/umd/react-test-renderer.development.js +0.33% 785.59 kB 788.20 kB +0.36% 164.38 kB 164.96 kB
oss-stable/react-test-renderer/umd/react-test-renderer.development.js +0.33% 785.61 kB 788.22 kB +0.36% 164.40 kB 164.99 kB
oss-experimental/react-test-renderer/umd/react-test-renderer.development.js +0.33% 785.71 kB 788.32 kB +0.36% 164.44 kB 165.02 kB
oss-stable-semver/react-art/cjs/react-art.development.js +0.33% 770.30 kB 772.86 kB +0.35% 166.66 kB 167.25 kB
oss-stable/react-art/cjs/react-art.development.js +0.33% 770.33 kB 772.88 kB +0.35% 166.68 kB 167.27 kB
oss-experimental/react-art/cjs/react-art.development.js +0.33% 778.12 kB 780.67 kB +0.35% 168.08 kB 168.66 kB
facebook-react-native/react-test-renderer/cjs/ReactTestRenderer-dev.js +0.32% 764.25 kB 766.69 kB +0.38% 164.32 kB 164.94 kB
facebook-www/ReactTestRenderer-dev.modern.js +0.31% 780.64 kB 783.08 kB +0.37% 167.66 kB 168.28 kB
facebook-www/ReactTestRenderer-dev.classic.js +0.31% 780.64 kB 783.08 kB +0.37% 167.66 kB 168.28 kB
oss-stable-semver/react-test-renderer/cjs/react-test-renderer.production.min.js +0.31% 99.97 kB 100.28 kB +0.28% 30.66 kB 30.74 kB
oss-stable/react-test-renderer/cjs/react-test-renderer.production.min.js +0.31% 99.99 kB 100.30 kB +0.28% 30.66 kB 30.74 kB
oss-experimental/react-test-renderer/cjs/react-test-renderer.production.min.js +0.31% 100.05 kB 100.36 kB +0.28% 30.69 kB 30.78 kB
oss-stable-semver/react-test-renderer/umd/react-test-renderer.production.min.js +0.31% 100.21 kB 100.52 kB +0.27% 31.07 kB 31.15 kB
oss-stable/react-test-renderer/umd/react-test-renderer.production.min.js +0.31% 100.23 kB 100.54 kB +0.27% 31.07 kB 31.16 kB
oss-experimental/react-test-renderer/umd/react-test-renderer.production.min.js +0.31% 100.29 kB 100.60 kB +0.27% 31.10 kB 31.18 kB
oss-stable-semver/react-art/umd/react-art.development.js +0.30% 877.75 kB 880.41 kB +0.35% 184.86 kB 185.51 kB
oss-stable/react-art/umd/react-art.development.js +0.30% 877.77 kB 880.43 kB +0.35% 184.88 kB 185.53 kB
oss-stable-semver/react-reconciler/cjs/react-reconciler.development.js +0.30% 850.10 kB 852.65 kB +0.36% 180.88 kB 181.53 kB
oss-stable/react-reconciler/cjs/react-reconciler.development.js +0.30% 850.12 kB 852.67 kB +0.36% 180.90 kB 181.56 kB
oss-experimental/react-art/umd/react-art.development.js +0.30% 886.01 kB 888.67 kB +0.35% 186.32 kB 186.98 kB
oss-experimental/react-reconciler/cjs/react-reconciler.development.js +0.30% 857.91 kB 860.46 kB +0.35% 182.34 kB 182.98 kB
react-native/implementations/ReactFabric-dev.js +0.30% 843.90 kB 846.39 kB +0.32% 183.54 kB 184.12 kB
react-native/implementations/ReactNativeRenderer-dev.js +0.29% 852.59 kB 855.08 kB +0.32% 185.72 kB 186.31 kB
facebook-www/ReactART-dev.modern.js +0.29% 871.10 kB 873.60 kB +0.34% 184.37 kB 185.00 kB
react-native/implementations/ReactFabric-dev.fb.js +0.28% 880.57 kB 883.07 kB +0.34% 190.60 kB 191.25 kB
facebook-www/ReactART-dev.classic.js +0.28% 881.56 kB 884.06 kB +0.34% 186.48 kB 187.11 kB
react-native/implementations/ReactNativeRenderer-dev.fb.js +0.28% 889.24 kB 891.74 kB +0.33% 192.83 kB 193.47 kB
facebook-react-native/react-test-renderer/cjs/ReactTestRenderer-prod.js +0.27% 289.05 kB 289.84 kB +0.34% 51.16 kB 51.34 kB
facebook-react-native/react-test-renderer/cjs/ReactTestRenderer-profiling.js +0.26% 304.83 kB 305.62 kB +0.28% 53.59 kB 53.74 kB
react-native/implementations/ReactFabric-prod.js +0.25% 316.93 kB 317.72 kB +0.27% 56.13 kB 56.28 kB
react-native/implementations/ReactNativeRenderer-prod.js +0.24% 322.75 kB 323.54 kB +0.25% 57.05 kB 57.19 kB
react-native/implementations/ReactFabric-prod.fb.js +0.24% 327.70 kB 328.48 kB +0.28% 58.17 kB 58.34 kB
react-native/implementations/ReactFabric-profiling.js +0.24% 336.32 kB 337.13 kB +0.24% 59.41 kB 59.56 kB
react-native/implementations/ReactNativeRenderer-prod.fb.js +0.24% 333.50 kB 334.29 kB +0.27% 59.12 kB 59.28 kB
react-native/implementations/ReactNativeRenderer-profiling.js +0.23% 342.22 kB 343.02 kB +0.23% 60.34 kB 60.47 kB
react-native/implementations/ReactFabric-profiling.fb.js +0.23% 354.75 kB 355.55 kB +0.21% 62.40 kB 62.53 kB
react-native/implementations/ReactNativeRenderer-profiling.fb.js +0.22% 360.63 kB 361.43 kB +0.21% 63.35 kB 63.48 kB
oss-stable-semver/react-dom/cjs/react-dom.development.js +0.21% 1,200.16 kB 1,202.71 kB +0.23% 266.48 kB 267.10 kB
oss-stable/react-dom/cjs/react-dom.development.js +0.21% 1,200.18 kB 1,202.74 kB +0.23% 266.50 kB 267.12 kB
oss-stable-semver/react-dom/umd/react-dom.development.js +0.21% 1,258.51 kB 1,261.17 kB +0.26% 269.43 kB 270.12 kB
oss-stable/react-dom/umd/react-dom.development.js +0.21% 1,258.53 kB 1,261.19 kB +0.26% 269.45 kB 270.15 kB
oss-experimental/react-dom/cjs/react-dom.development.js +0.21% 1,210.22 kB 1,212.77 kB +0.23% 268.47 kB 269.09 kB
oss-experimental/react-dom/umd/react-dom.development.js +0.21% 1,269.12 kB 1,271.78 kB +0.26% 271.42 kB 272.12 kB
oss-experimental/react-dom/cjs/react-dom-unstable_testing.development.js +0.21% 1,203.41 kB 1,205.92 kB +0.23% 267.13 kB 267.75 kB
facebook-www/ReactDOMTesting-dev.modern.js +0.20% 1,203.91 kB 1,206.35 kB +0.23% 266.93 kB 267.53 kB

Generated by 🚫 dangerJS against c27ac20

// Selective hydration. An update flowed into a dehydrated tree.
// Interrupt the current render so the work loop can switch to the
// hydration lane.
workInProgress = null;
Copy link
Contributor Author

Choose a reason for hiding this comment

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

A fix for this is added in the PR to add the SyncHydrationLane #25878, because it is only reproducible there.

Copy link
Collaborator

Choose a reason for hiding this comment

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

I think it could technically be reproducible if the update expired. So how about we merge both of these changes in the same PR? That way they land as an atomic unit in www.

In other words: don't merge this PR on its own. Let's merge the whole stack in #25878.

@tyao1 tyao1 changed the base branch from ty-add-regression-test to main December 15, 2022 19:45
@tyao1 tyao1 merged commit 7efa9e5 into main Dec 15, 2022
github-actions bot pushed a commit that referenced this pull request Dec 15, 2022
This PR includes the previously reverted #25695 and #25754, and the fix
for the regression test added in #25867.

Tested internally with a previous failed test,  and it's passing now.

Co-authored-by: Andrew Clark <[email protected]>

DiffTrain build for [7efa9e5](7efa9e5)
[View git log for this commit](https://github.com/facebook/react/commits/7efa9e59707b341f10fab79724e0fca373187925)
tyao1 added a commit that referenced this pull request Dec 15, 2022
Depends on #25876

Resubmit #25711 again(previously reverted in #25812), and added the fix
for unwinding in selective hydration during a hydration on the sync
lane.
github-actions bot pushed a commit that referenced this pull request Dec 15, 2022
Depends on #25876

Resubmit #25711 again(previously reverted in #25812), and added the fix
for unwinding in selective hydration during a hydration on the sync
lane.

DiffTrain build for [fabef7a](fabef7a)
[View git log for this commit](https://github.com/facebook/react/commits/fabef7a6b71798fe2477720e59d090a0e74e0009)
facebook-github-bot pushed a commit to facebook/react-native that referenced this pull request Jan 31, 2023
Summary:
This sync includes the following changes:
- **[48b687fc9](facebook/react@48b687fc9 )**: [trusted types][www] Add enableTrustedTypesIntegration flag back in ([#26016](facebook/react#26016)) //<an onion>//
- **[9b1423cc0](facebook/react@9b1423cc0 )**: Revert "Hold host functions in var" ([#26079](facebook/react#26079)) //<Samuel Susla>//
- **[ce09ace9a](facebook/react@ce09ace9a )**: Improve Error Messages when Access Client References ([#26059](facebook/react#26059)) //<Sebastian Markbåge>//
- **[0652bdbd1](facebook/react@0652bdbd1 )**: Add flow types to Maps in ReactNativeViewConfigRegistry.js ([#26064](facebook/react#26064)) //<Samuel Susla>//
- **[ee8509801](facebook/react@ee8509801 )**: [cleanup] remove deletedTreeCleanUpLevel feature flag ([#25529](facebook/react#25529)) //<Jan Kassens>//
- **[0e31dd028](facebook/react@0e31dd028 )**: Remove findDOMNode www shim ([#25998](facebook/react#25998)) //<Jan Kassens>//
- **[379dd741e](facebook/react@379dd741e )**: [www] set enableTrustedTypesIntegration to false ([#25997](facebook/react#25997)) //<Jan Kassens>//
- **[555ece0cd](facebook/react@555ece0cd )**: Don't warn about concurrently rendering contexts if we finished rendering ([#22797](facebook/react#22797)) //<Sebastian Silbermann>//
- **[0fce6bb49](facebook/react@0fce6bb49 )**: [cleanup] remove feature flags warnAboutDefaultPropsOnFunctionComponents and warnAboutStringRefs ([#25980](facebook/react#25980)) //<Jan Kassens>//
- **[7002a6743](facebook/react@7002a6743 )**: [cleanup] remove unused values from ReactFeatureFlags.www-dynamic ([#25575](facebook/react#25575)) //<Jan Kassens>//
- **[a48e54f2b](facebook/react@a48e54f2b )**: [cleanup] remove old feature flag warnAboutDeprecatedLifecycles ([#25978](facebook/react#25978)) //<Jan Kassens>//
- **[0f4a83596](facebook/react@0f4a83596 )**: Remove duplicate JSResourceReferenceImpl mock ([#25976](facebook/react#25976)) //<Jan Kassens>//
- **[c49131669](facebook/react@c49131669 )**: Remove unused Flow suppressions ([#25977](facebook/react#25977)) //<Jan Kassens>//
- **[afe6521](facebook/react@afe6521e1 )**: Refactor: remove useless parameter ([#25923](facebook/react#25923)) //<Chris>//
- **[34464fb16](facebook/react@34464fb16 )**: Upgrade to Flow 0.196.3 ([#25974](facebook/react#25974)) //<Jan Kassens>//
- **[e2424f33b](facebook/react@e2424f33b )**: [flow] enable exact_empty_objects ([#25973](facebook/react#25973)) //<Jan Kassens>//
- **[0b4f44302](facebook/react@0b4f44302 )**: [flow] enable enforce_local_inference_annotations ([#25921](facebook/react#25921)) //<Jan Kassens>//
- **[0b974418c](facebook/react@0b974418c )**: [Fizz] Fork Fizz instruction set for inline script and external runtime ([#25862](facebook/react#25862)) //<mofeiZ>//
- **[5379b6123](facebook/react@5379b6123 )**: Batch sync, default and continuous lanes ([#25700](facebook/react#25700)) //<Tianyu Yao>//
- **[bbf4d2211](facebook/react@bbf4d2211 )**: Update import for babel-code-frame in build script ([#25963](facebook/react#25963)) //<Ming Ye>//
- **[b83baf63f](facebook/react@b83baf63f )**: Transform updates to support Flow this annotation syntax ([#25918](facebook/react#25918)) //<Jan Kassens>//
- **[c2d655207](facebook/react@c2d655207 )**: Unify `use` and `renderDidSuspendDelayIfPossible` implementations ([#25922](facebook/react#25922)) //<Andrew Clark>//
- **[48274a43a](facebook/react@48274a43a )**: Remove vestigial Suspense batching logic ([#25861](facebook/react#25861)) //<Andrew Clark>//
- **[de7d1c907](facebook/react@de7d1c907 )**: Add `fetchPriority` to `<img>` and `<link>` ([#25927](facebook/react#25927)) //<Steven>//
- **[81d4ee9ca](facebook/react@81d4ee9ca )**: reconciler docs: fix small typo - "mode" (instead of "node") ([#25863](facebook/react#25863)) //<satelllte>//
- **[5fcf1a4b4](facebook/react@5fcf1a4b4 )**: Bugfix: Synchronous ping during render phase sometimes unwinds the stack, leading to crash ([#25851](facebook/react#25851)) //<Andrew Clark>//
- **[2b1fb91a5](facebook/react@2b1fb91a5 )**: ESLint upgrade to use hermes-eslint ([#25915](facebook/react#25915)) //<Jan Kassens>//
- **[fabef7a6b](facebook/react@fabef7a6b )**: Resubmit Add HydrationSyncLane ([#25878](facebook/react#25878)) //<Tianyu Yao>//
- **[7efa9e597](facebook/react@7efa9e597 )**: Fix unwinding context during selective hydration ([#25876](facebook/react#25876)) //<Tianyu Yao>//
- **[84a0a171e](facebook/react@84a0a171e )**: Rename experimental useEvent to useEffectEvent ([#25881](facebook/react#25881)) //<Sebastian Markbåge>//
- **[4dda96a40](facebook/react@4dda96a40 )**: [react-www] remove forked bundle ([#25866](facebook/react#25866)) //<Jan Kassens>//
- **[9c09c1cd6](facebook/react@9c09c1cd6 )**: Revert "Fork ReactDOMSharedInternals for www ([#25791](facebook/react#25791))" ([#25864](facebook/react#25864)) //<lauren>//
- **[996e4c0d5](facebook/react@996e4c0d5 )**: Offscreen add attach ([#25603](facebook/react#25603)) //<Samuel Susla>//
- **[b14d7fa4b](facebook/react@b14d7fa4b )**: Add support for setNativeProps to Fabric ([#25737](facebook/react#25737)) //<Samuel Susla>//
- **[819687279](facebook/react@819687279 )**: [Float] Fix typo in ReactDOMResourceValidation.js ([#25798](facebook/react#25798)) //<Ikko Ashimine>//
- **[5dfc485f6](facebook/react@5dfc485f6 )**: fix tests for when float is off ([#25839](facebook/react#25839)) //<Josh Story>//
- **[bfcbf3306](facebook/react@bfcbf3306 )**: toString children of title ([#25838](facebook/react#25838)) //<Sebastian Markbåge>//
- **[d4bc16a7d](facebook/react@d4bc16a7d )**: Revert "[react-www] remove forked bundle" ([#25837](facebook/react#25837)) //<Ricky>//
- **[d69b2cf82](facebook/react@d69b2cf82 )**: [bug fix] revert values in ReactFiberFlags to keep consistency for devtools ([#25832](facebook/react#25832)) //<Mengdi Chen>//
- **[645ae2686](facebook/react@645ae2686 )**: [react-www] remove forked bundle ([#25831](facebook/react#25831)) //<Jan Kassens>//
- **[d807eb52c](facebook/react@d807eb52c )**: Revert recent hydration changes ([#25812](facebook/react#25812)) //<Andrew Clark>//
- **[2ccfa657d](facebook/react@2ccfa657d )**: Fork ReactDOMSharedInternals for www ([#25791](facebook/react#25791)) //<lauren>//
- **[f0534ae94](facebook/react@f0534ae94 )**: Avoid replaying SelectiveHydrationException in dev ([#25754](facebook/react#25754)) //<Tianyu Yao>//
- **[7fab379d8](facebook/react@7fab379d8 )**: fix link to ReactDOMHostconfig in reconciler docs ([#25788](facebook/react#25788)) //<Dmitry>//
- **[500c8aa08](facebook/react@500c8aa08 )**: Add component name to StrictMode error message ([#25718](facebook/react#25718)) //<Samuel Susla>//
- **[353c30252](facebook/react@353c30252 )**: Hold host functions in var ([#25741](facebook/react#25741)) //<Samuel Susla>//

Changelog:
[General][Changed] - React Native sync for revisions 17f6912...48b687f

jest_e2e[run_all_tests]

Reviewed By: rubennorte

Differential Revision: D42855483

fbshipit-source-id: c244a595bb2d490a23b333c1b16d04a459ec94fc
@tyao1 tyao1 deleted the ty-unwind-selective-hydration-fix branch March 31, 2023 05:11
OlimpiaZurek pushed a commit to OlimpiaZurek/react-native that referenced this pull request May 22, 2023
Summary:
This sync includes the following changes:
- **[48b687fc9](facebook/react@48b687fc9 )**: [trusted types][www] Add enableTrustedTypesIntegration flag back in ([facebook#26016](facebook/react#26016)) //<an onion>//
- **[9b1423cc0](facebook/react@9b1423cc0 )**: Revert "Hold host functions in var" ([facebook#26079](facebook/react#26079)) //<Samuel Susla>//
- **[ce09ace9a](facebook/react@ce09ace9a )**: Improve Error Messages when Access Client References ([facebook#26059](facebook/react#26059)) //<Sebastian Markbåge>//
- **[0652bdbd1](facebook/react@0652bdbd1 )**: Add flow types to Maps in ReactNativeViewConfigRegistry.js ([facebook#26064](facebook/react#26064)) //<Samuel Susla>//
- **[ee8509801](facebook/react@ee8509801 )**: [cleanup] remove deletedTreeCleanUpLevel feature flag ([facebook#25529](facebook/react#25529)) //<Jan Kassens>//
- **[0e31dd028](facebook/react@0e31dd028 )**: Remove findDOMNode www shim ([facebook#25998](facebook/react#25998)) //<Jan Kassens>//
- **[379dd741e](facebook/react@379dd741e )**: [www] set enableTrustedTypesIntegration to false ([facebook#25997](facebook/react#25997)) //<Jan Kassens>//
- **[555ece0cd](facebook/react@555ece0cd )**: Don't warn about concurrently rendering contexts if we finished rendering ([facebook#22797](facebook/react#22797)) //<Sebastian Silbermann>//
- **[0fce6bb49](facebook/react@0fce6bb49 )**: [cleanup] remove feature flags warnAboutDefaultPropsOnFunctionComponents and warnAboutStringRefs ([facebook#25980](facebook/react#25980)) //<Jan Kassens>//
- **[7002a6743](facebook/react@7002a6743 )**: [cleanup] remove unused values from ReactFeatureFlags.www-dynamic ([facebook#25575](facebook/react#25575)) //<Jan Kassens>//
- **[a48e54f2b](facebook/react@a48e54f2b )**: [cleanup] remove old feature flag warnAboutDeprecatedLifecycles ([facebook#25978](facebook/react#25978)) //<Jan Kassens>//
- **[0f4a83596](facebook/react@0f4a83596 )**: Remove duplicate JSResourceReferenceImpl mock ([facebook#25976](facebook/react#25976)) //<Jan Kassens>//
- **[c49131669](facebook/react@c49131669 )**: Remove unused Flow suppressions ([facebook#25977](facebook/react#25977)) //<Jan Kassens>//
- **[afe6521](facebook/react@afe6521e1 )**: Refactor: remove useless parameter ([facebook#25923](facebook/react#25923)) //<Chris>//
- **[34464fb16](facebook/react@34464fb16 )**: Upgrade to Flow 0.196.3 ([facebook#25974](facebook/react#25974)) //<Jan Kassens>//
- **[e2424f33b](facebook/react@e2424f33b )**: [flow] enable exact_empty_objects ([facebook#25973](facebook/react#25973)) //<Jan Kassens>//
- **[0b4f44302](facebook/react@0b4f44302 )**: [flow] enable enforce_local_inference_annotations ([facebook#25921](facebook/react#25921)) //<Jan Kassens>//
- **[0b974418c](facebook/react@0b974418c )**: [Fizz] Fork Fizz instruction set for inline script and external runtime ([facebook#25862](facebook/react#25862)) //<mofeiZ>//
- **[5379b6123](facebook/react@5379b6123 )**: Batch sync, default and continuous lanes ([facebook#25700](facebook/react#25700)) //<Tianyu Yao>//
- **[bbf4d2211](facebook/react@bbf4d2211 )**: Update import for babel-code-frame in build script ([facebook#25963](facebook/react#25963)) //<Ming Ye>//
- **[b83baf63f](facebook/react@b83baf63f )**: Transform updates to support Flow this annotation syntax ([facebook#25918](facebook/react#25918)) //<Jan Kassens>//
- **[c2d655207](facebook/react@c2d655207 )**: Unify `use` and `renderDidSuspendDelayIfPossible` implementations ([facebook#25922](facebook/react#25922)) //<Andrew Clark>//
- **[48274a43a](facebook/react@48274a43a )**: Remove vestigial Suspense batching logic ([facebook#25861](facebook/react#25861)) //<Andrew Clark>//
- **[de7d1c907](facebook/react@de7d1c907 )**: Add `fetchPriority` to `<img>` and `<link>` ([facebook#25927](facebook/react#25927)) //<Steven>//
- **[81d4ee9ca](facebook/react@81d4ee9ca )**: reconciler docs: fix small typo - "mode" (instead of "node") ([facebook#25863](facebook/react#25863)) //<satelllte>//
- **[5fcf1a4b4](facebook/react@5fcf1a4b4 )**: Bugfix: Synchronous ping during render phase sometimes unwinds the stack, leading to crash ([facebook#25851](facebook/react#25851)) //<Andrew Clark>//
- **[2b1fb91a5](facebook/react@2b1fb91a5 )**: ESLint upgrade to use hermes-eslint ([facebook#25915](facebook/react#25915)) //<Jan Kassens>//
- **[fabef7a6b](facebook/react@fabef7a6b )**: Resubmit Add HydrationSyncLane ([facebook#25878](facebook/react#25878)) //<Tianyu Yao>//
- **[7efa9e597](facebook/react@7efa9e597 )**: Fix unwinding context during selective hydration ([facebook#25876](facebook/react#25876)) //<Tianyu Yao>//
- **[84a0a171e](facebook/react@84a0a171e )**: Rename experimental useEvent to useEffectEvent ([facebook#25881](facebook/react#25881)) //<Sebastian Markbåge>//
- **[4dda96a40](facebook/react@4dda96a40 )**: [react-www] remove forked bundle ([facebook#25866](facebook/react#25866)) //<Jan Kassens>//
- **[9c09c1cd6](facebook/react@9c09c1cd6 )**: Revert "Fork ReactDOMSharedInternals for www ([facebook#25791](facebook/react#25791))" ([facebook#25864](facebook/react#25864)) //<lauren>//
- **[996e4c0d5](facebook/react@996e4c0d5 )**: Offscreen add attach ([facebook#25603](facebook/react#25603)) //<Samuel Susla>//
- **[b14d7fa4b](facebook/react@b14d7fa4b )**: Add support for setNativeProps to Fabric ([facebook#25737](facebook/react#25737)) //<Samuel Susla>//
- **[819687279](facebook/react@819687279 )**: [Float] Fix typo in ReactDOMResourceValidation.js ([facebook#25798](facebook/react#25798)) //<Ikko Ashimine>//
- **[5dfc485f6](facebook/react@5dfc485f6 )**: fix tests for when float is off ([facebook#25839](facebook/react#25839)) //<Josh Story>//
- **[bfcbf3306](facebook/react@bfcbf3306 )**: toString children of title ([facebook#25838](facebook/react#25838)) //<Sebastian Markbåge>//
- **[d4bc16a7d](facebook/react@d4bc16a7d )**: Revert "[react-www] remove forked bundle" ([facebook#25837](facebook/react#25837)) //<Ricky>//
- **[d69b2cf82](facebook/react@d69b2cf82 )**: [bug fix] revert values in ReactFiberFlags to keep consistency for devtools ([facebook#25832](facebook/react#25832)) //<Mengdi Chen>//
- **[645ae2686](facebook/react@645ae2686 )**: [react-www] remove forked bundle ([facebook#25831](facebook/react#25831)) //<Jan Kassens>//
- **[d807eb52c](facebook/react@d807eb52c )**: Revert recent hydration changes ([facebook#25812](facebook/react#25812)) //<Andrew Clark>//
- **[2ccfa657d](facebook/react@2ccfa657d )**: Fork ReactDOMSharedInternals for www ([facebook#25791](facebook/react#25791)) //<lauren>//
- **[f0534ae94](facebook/react@f0534ae94 )**: Avoid replaying SelectiveHydrationException in dev ([facebook#25754](facebook/react#25754)) //<Tianyu Yao>//
- **[7fab379d8](facebook/react@7fab379d8 )**: fix link to ReactDOMHostconfig in reconciler docs ([facebook#25788](facebook/react#25788)) //<Dmitry>//
- **[500c8aa08](facebook/react@500c8aa08 )**: Add component name to StrictMode error message ([facebook#25718](facebook/react#25718)) //<Samuel Susla>//
- **[353c30252](facebook/react@353c30252 )**: Hold host functions in var ([facebook#25741](facebook/react#25741)) //<Samuel Susla>//

Changelog:
[General][Changed] - React Native sync for revisions 17f6912...48b687f

jest_e2e[run_all_tests]

Reviewed By: rubennorte

Differential Revision: D42855483

fbshipit-source-id: c244a595bb2d490a23b333c1b16d04a459ec94fc
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.

4 participants