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

Move string ref coercion to JSX runtime #28473

Merged
merged 1 commit into from Apr 5, 2024

Conversation

acdlite
Copy link
Collaborator

@acdlite acdlite commented Feb 29, 2024

Based on:


This moves the entire string ref implementation out Fiber and into the JSX runtime. The string is converted to a callback ref during element creation. This is a subtle change in behavior, because it will have already been converted to a callback ref if you access element.prop.ref or element.ref. But this is only for Meta, because string refs are disabled entirely in open source. And if it leads to an issue in practice, the solution is to switch to a different ref type, which Meta is going to do regardless.

@facebook-github-bot facebook-github-bot added CLA Signed React Core Team Opened by a member of the React Core Team labels Feb 29, 2024
@react-sizebot
Copy link

react-sizebot commented Feb 29, 2024

Comparing: fd0da3e...880ccbd

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 = 168.88 kB 168.88 kB = 52.68 kB 52.69 kB
oss-experimental/react-dom/cjs/react-dom.production.min.js = 170.69 kB 170.69 kB = 53.23 kB 53.24 kB
facebook-www/ReactDOM-prod.classic.js = 591.32 kB 590.15 kB = 103.85 kB 103.60 kB
facebook-www/ReactDOM-prod.modern.js = 567.65 kB 566.48 kB = 99.80 kB 99.56 kB
facebook-react-native/react/cjs/JSXRuntime-prod.js +70.42% 1.64 kB 2.80 kB +58.54% 0.77 kB 1.22 kB
facebook-react-native/react/cjs/JSXRuntime-profiling.js +70.42% 1.64 kB 2.80 kB +58.54% 0.77 kB 1.22 kB
facebook-www/JSXDEVRuntime-dev.modern.js +15.49% 50.73 kB 58.59 kB +11.20% 13.29 kB 14.78 kB
facebook-www/JSXDEVRuntime-dev.classic.js +15.43% 50.73 kB 58.56 kB +11.15% 13.29 kB 14.77 kB
facebook-react-native/react/cjs/JSXDEVRuntime-dev.js +15.26% 48.40 kB 55.79 kB +10.71% 12.81 kB 14.18 kB
facebook-react-native/react/cjs/JSXRuntime-dev.js +14.83% 49.81 kB 57.20 kB +10.55% 13.17 kB 14.56 kB
facebook-www/React-prod.modern.js +10.08% 21.17 kB 23.30 kB +11.27% 5.26 kB 5.86 kB
facebook-www/React-prod.classic.js +10.08% 21.17 kB 23.30 kB +11.26% 5.27 kB 5.86 kB
facebook-www/React-profiling.modern.js +9.87% 21.60 kB 23.73 kB +11.12% 5.34 kB 5.94 kB
facebook-www/React-profiling.classic.js +9.87% 21.60 kB 23.74 kB +11.13% 5.34 kB 5.94 kB
facebook-www/ReactServer-dev.modern.js +9.10% 94.62 kB 103.23 kB +7.02% 22.47 kB 24.05 kB
facebook-www/ReactServer-prod.modern.js +8.24% 17.81 kB 19.28 kB +6.01% 4.63 kB 4.90 kB
facebook-react-native/react/cjs/React-prod.js +7.42% 20.81 kB 22.35 kB +10.11% 5.21 kB 5.73 kB
facebook-react-native/react/cjs/React-profiling.js +7.27% 21.24 kB 22.79 kB +10.04% 5.28 kB 5.81 kB
facebook-www/React-dev.modern.js +6.86% 125.52 kB 134.13 kB +5.32% 29.62 kB 31.19 kB
facebook-www/React-dev.classic.js +6.80% 126.10 kB 134.68 kB +5.32% 29.72 kB 31.30 kB
facebook-react-native/react/cjs/React-dev.js +6.16% 124.17 kB 131.81 kB +4.65% 29.31 kB 30.67 kB
test_utils/ReactAllWarnings.js Deleted 64.04 kB 0.00 kB Deleted 16.02 kB 0.00 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/cjs/JSXRuntime-prod.js +70.42% 1.64 kB 2.80 kB +58.54% 0.77 kB 1.22 kB
facebook-react-native/react/cjs/JSXRuntime-profiling.js +70.42% 1.64 kB 2.80 kB +58.54% 0.77 kB 1.22 kB
facebook-www/JSXDEVRuntime-dev.modern.js +15.49% 50.73 kB 58.59 kB +11.20% 13.29 kB 14.78 kB
facebook-www/JSXDEVRuntime-dev.classic.js +15.43% 50.73 kB 58.56 kB +11.15% 13.29 kB 14.77 kB
facebook-react-native/react/cjs/JSXDEVRuntime-dev.js +15.26% 48.40 kB 55.79 kB +10.71% 12.81 kB 14.18 kB
facebook-react-native/react/cjs/JSXRuntime-dev.js +14.83% 49.81 kB 57.20 kB +10.55% 13.17 kB 14.56 kB
facebook-www/React-prod.modern.js +10.08% 21.17 kB 23.30 kB +11.27% 5.26 kB 5.86 kB
facebook-www/React-prod.classic.js +10.08% 21.17 kB 23.30 kB +11.26% 5.27 kB 5.86 kB
facebook-www/React-profiling.modern.js +9.87% 21.60 kB 23.73 kB +11.12% 5.34 kB 5.94 kB
facebook-www/React-profiling.classic.js +9.87% 21.60 kB 23.74 kB +11.13% 5.34 kB 5.94 kB
facebook-www/ReactServer-dev.modern.js +9.10% 94.62 kB 103.23 kB +7.02% 22.47 kB 24.05 kB
facebook-www/ReactServer-prod.modern.js +8.24% 17.81 kB 19.28 kB +6.01% 4.63 kB 4.90 kB
facebook-react-native/react/cjs/React-prod.js +7.42% 20.81 kB 22.35 kB +10.11% 5.21 kB 5.73 kB
facebook-react-native/react/cjs/React-profiling.js +7.27% 21.24 kB 22.79 kB +10.04% 5.28 kB 5.81 kB
facebook-www/React-dev.modern.js +6.86% 125.52 kB 134.13 kB +5.32% 29.62 kB 31.19 kB
facebook-www/React-dev.classic.js +6.80% 126.10 kB 134.68 kB +5.32% 29.72 kB 31.30 kB
facebook-react-native/react/cjs/React-dev.js +6.16% 124.17 kB 131.81 kB +4.65% 29.31 kB 30.67 kB
oss-experimental/react/cjs/react-jsx-runtime.profiling.js +0.40% 4.49 kB 4.51 kB +0.25% 2.03 kB 2.04 kB
oss-stable-semver/react/cjs/react-jsx-runtime.profiling.js +0.40% 4.49 kB 4.51 kB +0.25% 2.03 kB 2.04 kB
oss-stable/react/cjs/react-jsx-runtime.profiling.js +0.40% 4.49 kB 4.51 kB +0.25% 2.03 kB 2.04 kB
oss-experimental/react/cjs/react-jsx-runtime.production.js +0.40% 4.49 kB 4.51 kB +0.30% 2.03 kB 2.04 kB
oss-stable-semver/react/cjs/react-jsx-runtime.production.js +0.40% 4.49 kB 4.51 kB +0.30% 2.03 kB 2.04 kB
oss-stable/react/cjs/react-jsx-runtime.production.js +0.40% 4.49 kB 4.51 kB +0.30% 2.03 kB 2.04 kB
oss-experimental/react/cjs/react-jsx-runtime.react-server.production.js +0.39% 4.56 kB 4.58 kB +0.34% 2.05 kB 2.05 kB
oss-stable-semver/react/cjs/react-jsx-runtime.react-server.production.js +0.39% 4.56 kB 4.58 kB +0.34% 2.05 kB 2.05 kB
oss-stable/react/cjs/react-jsx-runtime.react-server.production.js +0.39% 4.56 kB 4.58 kB +0.34% 2.05 kB 2.05 kB
facebook-www/ReactDOMTesting-prod.modern.js = 583.41 kB 582.23 kB = 103.70 kB 103.45 kB
facebook-www/ReactDOM-prod.modern.js = 567.65 kB 566.48 kB = 99.80 kB 99.56 kB
facebook-www/ReactDOMTesting-dev.classic.js = 1,699.40 kB 1,694.01 kB = 337.50 kB 336.28 kB
facebook-www/ReactART-prod.classic.js = 366.69 kB 365.52 kB = 61.81 kB 61.54 kB
facebook-www/ReactDOM-dev.classic.js = 1,677.63 kB 1,672.24 kB = 332.89 kB 331.63 kB
facebook-www/ReactDOMTesting-dev.modern.js = 1,646.39 kB 1,641.00 kB = 328.11 kB 326.89 kB
facebook-www/ReactDOM-dev.modern.js = 1,625.91 kB 1,620.52 kB = 323.71 kB 322.48 kB
facebook-www/ReactART-prod.modern.js = 348.28 kB 347.10 kB = 58.89 kB 58.63 kB
react-native/implementations/ReactNativeRenderer-dev.fb.js = 1,111.68 kB 1,107.75 kB = 221.19 kB 220.40 kB
react-native/implementations/ReactFabric-dev.fb.js = 1,097.07 kB 1,093.13 kB = 217.31 kB 216.48 kB
facebook-www/ReactTestRenderer-dev.classic.js = 967.97 kB 964.49 kB = 192.07 kB 191.30 kB
facebook-www/ReactTestRenderer-dev.modern.js = 967.97 kB 964.49 kB = 192.07 kB 191.30 kB
facebook-react-native/react-test-renderer/cjs/ReactTestRenderer-dev.js = 962.95 kB 959.47 kB = 189.74 kB 188.96 kB
react-native/implementations/ReactNativeRenderer-dev.js = 1,001.45 kB 997.52 kB = 200.12 kB 199.27 kB
react-native/implementations/ReactFabric-dev.js = 986.56 kB 982.63 kB = 196.36 kB 195.58 kB
react-native/implementations/ReactNativeRenderer-profiling.fb.js = 402.13 kB 400.03 kB = 69.83 kB 69.27 kB
react-native/implementations/ReactFabric-profiling.fb.js = 394.67 kB 392.57 kB = 68.54 kB 67.96 kB
react-native/implementations/ReactNativeRenderer-prod.fb.js = 374.82 kB 372.72 kB = 65.63 kB 65.08 kB
react-native/implementations/ReactFabric-prod.fb.js = 367.43 kB 365.33 kB = 64.35 kB 63.78 kB
react-native/implementations/ReactNativeRenderer-profiling.js = 346.60 kB 344.50 kB = 60.18 kB 59.59 kB
facebook-react-native/react-test-renderer/cjs/ReactTestRenderer-profiling.js = 340.06 kB 337.96 kB = 59.09 kB 58.53 kB
react-native/implementations/ReactFabric-profiling.js = 337.10 kB 335.00 kB = 58.52 kB 57.91 kB
react-native/implementations/ReactNativeRenderer-prod.js = 319.53 kB 317.43 kB = 55.96 kB 55.38 kB
facebook-react-native/react-test-renderer/cjs/ReactTestRenderer-prod.js = 316.30 kB 314.21 kB = 55.67 kB 55.11 kB
react-native/implementations/ReactFabric-prod.js = 310.78 kB 308.68 kB = 54.45 kB 53.85 kB
facebook-www/ReactART-dev.classic.js = 1,079.46 kB 1,071.23 kB = 210.82 kB 208.53 kB
facebook-www/ReactART-dev.modern.js = 1,045.81 kB 1,037.58 kB = 204.78 kB 202.46 kB
test_utils/ReactAllWarnings.js Deleted 64.04 kB 0.00 kB Deleted 16.02 kB 0.00 kB

Generated by 🚫 dangerJS against 880ccbd

@acdlite acdlite force-pushed the move-string-ref-coercion branch 2 times, most recently from e89e296 to 9392a7e Compare February 29, 2024 18:53
@acdlite acdlite marked this pull request as ready for review February 29, 2024 18:56
expect(clone.props).toEqual({foo: 'ef'});
} else {
// Not going to bother testing every possible combination.
Copy link
Member

Choose a reason for hiding this comment

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

This needs covered because we will run flags.enableRefAsProp && !flags.disableStringRefs at meta

@acdlite acdlite force-pushed the move-string-ref-coercion branch 2 times, most recently from 9f4c2ef to 3fdfc4a Compare April 4, 2024 15:50
This moves the entire string ref implementation out Fiber and into
the JSX runtime. The string is converted to a callback ref during
element creation. This is a subtle change in behavior, because it will
have already been converted to a callback ref if you access
element.prop.ref or element.ref. But this is only for Meta, because
string refs are disabled entirely in open source. And if it leads to
an issue in practice, the solution is to switch to a different ref type,
which Meta is going to do regardless.
@acdlite acdlite merged commit e3ebcd5 into facebook:main Apr 5, 2024
38 checks passed
github-actions bot pushed a commit that referenced this pull request Apr 5, 2024
Based on:

- #28464

---

This moves the entire string ref implementation out Fiber and into the
JSX runtime. The string is converted to a callback ref during element
creation. This is a subtle change in behavior, because it will have
already been converted to a callback ref if you access element.prop.ref
or element.ref. But this is only for Meta, because string refs are
disabled entirely in open source. And if it leads to an issue in
practice, the solution is to switch to a different ref type, which Meta
is going to do regardless.

DiffTrain build for [e3ebcd5](e3ebcd5)
josephsavona added a commit that referenced this pull request Apr 9, 2024
Fix for an issue introduced in #28473 where cloneElement() with a string
ref fails due to lack of an owner. We should use the current owner in
this case.

---------

Co-authored-by: Rick Hanlon <rickhanlonii@fb.com>
rickhanlonii pushed a commit that referenced this pull request Apr 11, 2024
Seeing errors with undefined string ref values when trying to sync
#28473

Added a test that reproduces the failing pattern.

@acdlite pushed
a786481
with fix

---------

Co-authored-by: Jack Pope <jackpope@meta.com>
Co-authored-by: Andrew Clark <git@andrewclark.io>
kassens pushed a commit that referenced this pull request Apr 11, 2024
Based on:

- #28464

---

This moves the entire string ref implementation out Fiber and into the
JSX runtime. The string is converted to a callback ref during element
creation. This is a subtle change in behavior, because it will have
already been converted to a callback ref if you access element.prop.ref
or element.ref. But this is only for Meta, because string refs are
disabled entirely in open source. And if it leads to an issue in
practice, the solution is to switch to a different ref type, which Meta
is going to do regardless.
kassens pushed a commit that referenced this pull request Apr 11, 2024
Fix for an issue introduced in #28473 where cloneElement() with a string
ref fails due to lack of an owner. We should use the current owner in
this case.

---------

Co-authored-by: Rick Hanlon <rickhanlonii@fb.com>
kassens pushed a commit that referenced this pull request Apr 11, 2024
Seeing errors with undefined string ref values when trying to sync
#28473

Added a test that reproduces the failing pattern.

@acdlite pushed
a786481
with fix

---------

Co-authored-by: Jack Pope <jackpope@meta.com>
Co-authored-by: Andrew Clark <git@andrewclark.io>
rickhanlonii added a commit that referenced this pull request Apr 11, 2024
Fix for an issue introduced in #28473 where cloneElement() with a string
ref fails due to lack of an owner. We should use the current owner in
this case.

---------

Co-authored-by: Rick Hanlon <rickhanlonii@fb.com>
rickhanlonii pushed a commit that referenced this pull request Apr 11, 2024
Seeing errors with undefined string ref values when trying to sync
#28473

Added a test that reproduces the failing pattern.

@acdlite pushed
a786481
with fix

---------

Co-authored-by: Jack Pope <jackpope@meta.com>
Co-authored-by: Andrew Clark <git@andrewclark.io>
rickhanlonii pushed a commit that referenced this pull request Apr 11, 2024
Seeing errors with undefined string ref values when trying to sync
#28473

Added a test that reproduces the failing pattern.

@acdlite pushed
a786481
with fix

---------

Co-authored-by: Jack Pope <jackpope@meta.com>
Co-authored-by: Andrew Clark <git@andrewclark.io>
EdisonVan pushed a commit to EdisonVan/react that referenced this pull request Apr 15, 2024
Based on:

- facebook#28464

---

This moves the entire string ref implementation out Fiber and into the
JSX runtime. The string is converted to a callback ref during element
creation. This is a subtle change in behavior, because it will have
already been converted to a callback ref if you access element.prop.ref
or element.ref. But this is only for Meta, because string refs are
disabled entirely in open source. And if it leads to an issue in
practice, the solution is to switch to a different ref type, which Meta
is going to do regardless.
EdisonVan pushed a commit to EdisonVan/react that referenced this pull request Apr 15, 2024
Fix for an issue introduced in facebook#28473 where cloneElement() with a string
ref fails due to lack of an owner. We should use the current owner in
this case.

---------

Co-authored-by: Rick Hanlon <rickhanlonii@fb.com>
EdisonVan pushed a commit to EdisonVan/react that referenced this pull request Apr 15, 2024
Seeing errors with undefined string ref values when trying to sync
facebook#28473

Added a test that reproduces the failing pattern.

@acdlite pushed
facebook@a786481
with fix

---------

Co-authored-by: Jack Pope <jackpope@meta.com>
Co-authored-by: Andrew Clark <git@andrewclark.io>
bigfootjon pushed a commit that referenced this pull request Apr 18, 2024
Based on:

- #28464

---

This moves the entire string ref implementation out Fiber and into the
JSX runtime. The string is converted to a callback ref during element
creation. This is a subtle change in behavior, because it will have
already been converted to a callback ref if you access element.prop.ref
or element.ref. But this is only for Meta, because string refs are
disabled entirely in open source. And if it leads to an issue in
practice, the solution is to switch to a different ref type, which Meta
is going to do regardless.

DiffTrain build for commit e3ebcd5.
facebook-github-bot pushed a commit to facebook/react-native that referenced this pull request Apr 19, 2024
Summary:
This sync includes the changes from:
- D56103750
- [TODO] A shim for SECRET_INTERNALS

This sync includes the following changes:
- **[b5e5ce8e0](facebook/react@b5e5ce8e0 )**: Update ReactNativeTypes for root options (part 2) ([#28857](facebook/react#28857)) //<Ricky>//
- **[da6ba53b1](facebook/react@da6ba53b1 )**: [UMD] Remove umd builds ([#28735](facebook/react#28735)) //<Josh Story>//
- **[0c245df1d](facebook/react@0c245df1d )**: Complete the typo fix ([#28856](facebook/react#28856)) //<Sebastian Silbermann>//
- **[f82051d7a](facebook/react@f82051d7a )**: console test utils fix: match entire string, not just first letter ([#28855](facebook/react#28855)) //<Andrew Clark>//
- **[4ca20fd36](facebook/react@4ca20fd36 )**: Test top level fragment inside lazy semantics ([#28852](facebook/react#28852)) //<Sebastian Markbåge>//
- **[c0cf7c696](facebook/react@c0cf7c696 )**: Promote ASYNC_ITERATOR symbol to React Symbols ([#28851](facebook/react#28851)) //<Sebastian Markbåge>//
- **[657428a9e](facebook/react@657428a9e )**: Add ReactNativeTypes for root options ([#28850](facebook/react#28850)) //<Ricky>//
- **[7909d8eab](facebook/react@7909d8eab )**: [Flight] Encode ReadableStream and AsyncIterables ([#28847](facebook/react#28847)) //<Sebastian Markbåge>//
- **[13eb61d05](facebook/react@13eb61d05 )**: Move enableUseDeferredValueInitialArg to canary ([#28818](facebook/react#28818)) //<Andrew Clark>//
- **[8afa144bd](facebook/react@8afa144bd )**: Enable flag disableClientCache ([#28846](facebook/react#28846)) //<Jan Kassens>//
- **[734956ace](facebook/react@734956ace )**: Devtools: Add support for useFormStatus ([#28413](facebook/react#28413)) //<Sebastian Silbermann>//
- **[17e920c00](facebook/react@17e920c00 )**: [Flight Reply] Encode Typed Arrays and Blobs ([#28819](facebook/react#28819)) //<Sebastian Markbåge>//
- **[0347fcd00](facebook/react@0347fcd00 )**: Add on(Caught|Uncaught|Recoverable) opts to RN ([#28836](facebook/react#28836)) //<Ricky>//
- **[c113503ad](facebook/react@c113503ad )**: Flush direct streams in Bun ([#28837](facebook/react#28837)) //<Kenta Iwasaki>//
- **[9defcd56b](facebook/react@9defcd56b )**: Remove redundant props assign ([#28829](facebook/react#28829)) //<Sebastian Silbermann>//
- **[ed4023603](facebook/react@ed4023603 )**: Fix mistaken "react-server" condition ([#28835](facebook/react#28835)) //<Sebastian Markbåge>//
- **[c8a035036](facebook/react@c8a035036 )**: [Fizz] hoistables should never flush before the preamble ([#28802](facebook/react#28802)) //<Josh Story>//
- **[4f5c812a3](facebook/react@4f5c812a3 )**: DevTools: Rely on sourcemaps to compute hook name of built-in hooks in newer versions ([#28593](facebook/react#28593)) //<Sebastian Silbermann>//
- **[435415962](facebook/react@435415962 )**: Backwards compatibility for string refs on WWW ([#28826](facebook/react#28826)) //<Jack Pope>//
- **[608edcc90](facebook/react@608edcc90 )**: [tests] add `assertConsole<method>Dev` helpers ([#28732](facebook/react#28732)) //<Ricky>//
- **[da69b6af9](facebook/react@da69b6af9 )**: ReactDOM.requestFormReset  ([#28809](facebook/react#28809)) //<Andrew Clark>//
- **[374b5d26c](facebook/react@374b5d26c )**: Scaffolding for requestFormReset API ([#28808](facebook/react#28808)) //<Andrew Clark>//
- **[41950d14a](facebook/react@41950d14a )**: Automatically reset forms after action finishes ([#28804](facebook/react#28804)) //<Andrew Clark>//
- **[dc6a7e01e](facebook/react@dc6a7e01e )**: [Float] Don't preload images inside `<noscript>` ([#28815](facebook/react#28815)) //<Josh Story>//
- **[3f947b1b4](facebook/react@3f947b1b4 )**: [tests] Assert scheduler log empty in internalAct ([#28737](facebook/react#28737)) //<Ricky>//
- **[bf09089f6](facebook/react@bf09089f6 )**: Remove Scheduler.log from ReactSuspenseFuzz-test ([#28812](facebook/react#28812)) //<Ricky>//
- **[84cb3b4cb](facebook/react@84cb3b4cb )**: Hardcode disableIEWorkarounds for www ([#28811](facebook/react#28811)) //<Ricky>//
- **[2243b40ab](facebook/react@2243b40ab )**: [tests] assertLog before act in useEffectEvent ([#28763](facebook/react#28763)) //<Ricky>//
- **[dfc64c6e3](facebook/react@dfc64c6e3 )**: [tests] assertLog before act in ReactUse ([#28762](facebook/react#28762)) //<Ricky>//
- **[42eff4bc7](facebook/react@42eff4bc7 )**: [tests] Fix assertions not flushed before act ([#28745](facebook/react#28745)) //<Ricky>//
- **[ed3c65caf](facebook/react@ed3c65caf )**: Warn if outdated JSX transform is detected ([#28781](facebook/react#28781)) //<Andrew Clark>//
- **[3f9e237a2](facebook/react@3f9e237a2 )**: Fix: Suspend while recovering from hydration error ([#28800](facebook/react#28800)) //<Andrew Clark>//
- **[7f5d25e23](facebook/react@7f5d25e23 )**: Fix cloneElement using string ref w no owner ([#28797](facebook/react#28797)) //<Joseph Savona>//
- **[bf40b0244](facebook/react@bf40b0244 )**: [Fizz] Stop publishing external-runtime to stable channel ([#28796](facebook/react#28796)) //<Josh Story>//
- **[7f93cb41c](facebook/react@7f93cb41c )**: [DOM] Infer react-server entries bundles if not explicitly configured ([#28795](facebook/react#28795)) //<Josh Story>//
- **[f61316535](facebook/react@f61316535 )**: Rename SECRET INTERNALS to `__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE` ([#28789](facebook/react#28789)) //<Sebastian Markbåge>//
- **[9644d206e](facebook/react@9644d206e )**: Soften useFormState warning ([#28788](facebook/react#28788)) //<Ricky>//
- **[c771016e1](facebook/react@c771016e1 )**: Rename The Secret Export of Server Internals ([#28786](facebook/react#28786)) //<Sebastian Markbåge>//
- **[d50323eb8](facebook/react@d50323eb8 )**: Flatten ReactSharedInternals ([#28783](facebook/react#28783)) //<Sebastian Markbåge>//
- **[f62cf8c62](facebook/react@f62cf8c62 )**: [Float] treat `props.async` in Float consistent with the rest of react-dom ([#26760](facebook/react#26760)) //<Josh Story>//
- **[dfd3d5af8](facebook/react@dfd3d5af8 )**: Add support for transition{run,start,cancel} events ([#27345](facebook/react#27345)) //<Hugo Sales>//
- **[1f8327f83](facebook/react@1f8327f83 )**: [Fiber] Use real event priority for hydration scheduling ([#28765](facebook/react#28765)) //<Josh Story>//
- **[97c90ed88](facebook/react@97c90ed88 )**: [DOM] Shrink ReactDOMCurrentDispatcher method names ([#28770](facebook/react#28770)) //<Josh Story>//
- **[9007fdc8f](facebook/react@9007fdc8f )**: [DOM] Shrink ReactDOMSharedInternals source representation ([#28771](facebook/react#28771)) //<Josh Story>//
- **[14f50ad15](facebook/react@14f50ad15 )**: [Flight] Allow lazily resolving outlined models ([#28780](facebook/react#28780)) //<Sebastian Markbåge>//
- **[4c12339ce](facebook/react@4c12339ce )**: [DOM] move `flushSync` out of the reconciler ([#28500](facebook/react#28500)) //<Josh Story>//
- **[8e1462e8c](facebook/react@8e1462e8c )**: [Fiber] Move updatePriority tracking to renderers ([#28751](facebook/react#28751)) //<Josh Story>//
- **[0b3b8a6a3](facebook/react@0b3b8a6a3 )**: jsx: Remove unnecessary hasOwnProperty check ([#28775](facebook/react#28775)) //<Andrew Clark>//
- **[2acfb7b60](facebook/react@2acfb7b60 )**: [Flight] Support FormData from Server to Client ([#28754](facebook/react#28754)) //<Sebastian Markbåge>//
- **[d1547defe](facebook/react@d1547defe )**: Fast JSX: Don't clone props object ([#28768](facebook/react#28768)) //<Andrew Clark>//
- **[bfd8da807](facebook/react@bfd8da807 )**: Make class prop resolution faster ([#28766](facebook/react#28766)) //<Andrew Clark>//
- **[cbb6f2b54](facebook/react@cbb6f2b54 )**: [Flight] Support Blobs from Server to Client ([#28755](facebook/react#28755)) //<Sebastian Markbåge>//
- **[f33a6b69c](facebook/react@f33a6b69c )**: Track Owner for Server Components in DEV ([#28753](facebook/react#28753)) //<Sebastian Markbåge>//
- **[e3ebcd54b](facebook/react@e3ebcd54b )**: Move string ref coercion to JSX runtime ([#28473](facebook/react#28473)) //<Andrew Clark>//
- **[fd0da3eef](facebook/react@fd0da3eef )**: Remove _owner field from JSX elements in prod if string refs are disabled ([#28739](facebook/react#28739)) //<Sebastian Markbåge>//

Changelog:
[General][Changed] - React Native sync for revisions 48b4ecc...b5e5ce8

jest_e2e[run_all_tests]
bypass-github-export-checks

Reviewed By: kassens

Differential Revision: D56251607

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

5 participants