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

Extract Fizz instruction set to build macro #25457

Merged
merged 1 commit into from
Oct 14, 2022

Conversation

acdlite
Copy link
Collaborator

@acdlite acdlite commented Oct 10, 2022

We're adding an option to Fizz to support an alternate output format that doesn't rely on inline script tags (see #25437). The two outputs will share the same "instruction set" of functions. These functions are currently inlined into the source file; to maintain a single source of truth, in preparation for the new option, this commit moves the instruction set to a separate file that is injected by the build system, similar to a macro.

In the future, we could improve this further by running Closure on the instruction set instead of hardcoding the output. This isn't an urgent improvement, though, because we rarely modify the instruction set.

Co-authored-by: Mofei Zhang feifei0@fb.com

@acdlite acdlite requested a review from mofeiZ October 10, 2022 16:12
@facebook-github-bot facebook-github-bot added CLA Signed React Core Team Opened by a member of the React Core Team labels Oct 10, 2022
@sizebot
Copy link

sizebot commented Oct 10, 2022

Comparing: ea5bc6b...36cf5c6

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 = 135.64 kB 135.64 kB = 43.46 kB 43.46 kB
oss-experimental/react-dom/cjs/react-dom.production.min.js = 149.89 kB 149.89 kB = 47.87 kB 47.87 kB
facebook-www/ReactDOM-prod.classic.js = 492.27 kB 492.27 kB = 87.58 kB 87.58 kB
facebook-www/ReactDOM-prod.modern.js = 477.52 kB 477.52 kB = 85.38 kB 85.38 kB
facebook-www/ReactDOMForked-prod.classic.js = 492.27 kB 492.27 kB = 87.58 kB 87.58 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-server-dom-webpack/cjs/react-server-dom-webpack-writer.browser.development.server.js +1.68% 78.90 kB 80.22 kB +0.42% 20.17 kB 20.25 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-writer.browser.development.server.js +1.68% 78.90 kB 80.22 kB +0.42% 20.17 kB 20.25 kB
oss-stable-semver/react-server-dom-webpack/umd/react-server-dom-webpack-writer.browser.development.server.js +1.67% 82.80 kB 84.19 kB +0.50% 20.40 kB 20.51 kB
oss-stable/react-server-dom-webpack/umd/react-server-dom-webpack-writer.browser.development.server.js +1.67% 82.80 kB 84.19 kB +0.50% 20.40 kB 20.51 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-writer.node.development.server.js +1.65% 80.33 kB 81.65 kB +0.41% 20.30 kB 20.38 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-writer.node.development.server.js +1.65% 80.33 kB 81.65 kB +0.41% 20.30 kB 20.38 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-writer.browser.development.server.js +1.60% 82.86 kB 84.19 kB +0.44% 21.15 kB 21.24 kB
oss-experimental/react-server-dom-webpack/umd/react-server-dom-webpack-writer.browser.development.server.js +1.59% 86.96 kB 88.35 kB +0.51% 21.39 kB 21.50 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-writer.node.development.server.js +1.57% 84.29 kB 85.62 kB +0.44% 21.28 kB 21.37 kB
oss-stable-semver/react-dom/cjs/react-dom-server.browser.development.js +0.46% 280.69 kB 282.00 kB +0.13% 67.36 kB 67.45 kB
oss-stable/react-dom/cjs/react-dom-server.browser.development.js +0.46% 280.72 kB 282.02 kB +0.14% 67.38 kB 67.47 kB
oss-stable-semver/react-dom/umd/react-dom-server.browser.development.js +0.46% 294.20 kB 295.56 kB +0.16% 68.01 kB 68.12 kB
oss-stable/react-dom/umd/react-dom-server.browser.development.js +0.46% 294.22 kB 295.59 kB +0.17% 68.04 kB 68.15 kB
oss-stable-semver/react-dom/cjs/react-dom-server.node.development.js +0.46% 281.96 kB 283.26 kB +0.13% 67.32 kB 67.41 kB
oss-stable/react-dom/cjs/react-dom-server.node.development.js +0.46% 281.98 kB 283.28 kB +0.13% 67.34 kB 67.43 kB
oss-experimental/react-dom/cjs/react-dom-static.browser.development.js +0.43% 301.97 kB 303.28 kB = 71.61 kB 71.56 kB
oss-experimental/react-dom/cjs/react-dom-server.browser.development.js +0.43% 302.67 kB 303.97 kB = 71.80 kB 71.75 kB
oss-experimental/react-dom/umd/react-dom-server.browser.development.js +0.43% 317.34 kB 318.71 kB = 72.56 kB 72.50 kB
oss-experimental/react-dom/cjs/react-dom-server-legacy.browser.development.js +0.43% 303.69 kB 305.00 kB = 71.74 kB 71.65 kB
oss-experimental/react-dom/cjs/react-dom-static.node.development.js +0.43% 303.89 kB 305.19 kB = 71.86 kB 71.81 kB
oss-experimental/react-dom/umd/react-dom-server-legacy.browser.development.js +0.43% 318.39 kB 319.75 kB = 72.52 kB 72.41 kB
oss-experimental/react-dom/cjs/react-dom-server.node.development.js +0.43% 303.93 kB 305.23 kB = 71.76 kB 71.72 kB
oss-experimental/react-dom/cjs/react-dom-server-legacy.node.development.js +0.43% 305.40 kB 306.70 kB = 72.20 kB 72.11 kB
facebook-www/ReactDOMServer-dev.classic.js = 298.68 kB 296.45 kB = 69.95 kB 69.09 kB
facebook-www/ReactDOMServer-dev.modern.js = 291.98 kB 289.76 kB = 68.48 kB 67.63 kB
facebook-www/ReactDOMServerStreaming-dev.modern.js = 287.49 kB 285.26 kB = 67.48 kB 66.61 kB
oss-stable/react-dom/cjs/react-dom-server-legacy.node.development.js = 282.07 kB 279.84 kB = 67.31 kB 66.46 kB
oss-stable-semver/react-dom/cjs/react-dom-server-legacy.node.development.js = 282.05 kB 279.82 kB = 67.29 kB 66.43 kB
oss-stable/react-dom/cjs/react-dom-server-legacy.browser.development.js = 280.36 kB 278.13 kB = 66.85 kB 65.99 kB
oss-stable-semver/react-dom/cjs/react-dom-server-legacy.browser.development.js = 280.34 kB 278.11 kB = 66.82 kB 65.97 kB
oss-stable/react-dom/umd/react-dom-server-legacy.browser.development.js = 293.87 kB 291.53 kB = 67.51 kB 66.68 kB
oss-stable-semver/react-dom/umd/react-dom-server-legacy.browser.development.js = 293.84 kB 291.51 kB = 67.49 kB 66.65 kB

Generated by 🚫 dangerJS against 36cf5c6

const completeSegmentFunction =
'function $RS(a,b){a=document.getElementById(a);b=document.getElementById(b);for(a.parentNode.removeChild(a);a.firstChild;)b.parentNode.insertBefore(a.firstChild,b);b.parentNode.removeChild(b)}';
'__FIZZ_INSTRUCTION_SET_COMPLETE_SEGMENT_FUNCTION__';
Copy link
Collaborator

Choose a reason for hiding this comment

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

does rollup interpolate string values when looking to replace plugs? I had assumed it was interpreting a token not just a string when doing things like __DEV__ replacement but I guess not :)

Copy link
Contributor

Choose a reason for hiding this comment

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

Yeah, that was a surprise to me as well but this was my bad idea originally 😅 Just refactored in a new commit to not replace string literals (which is also hard to intercept per @acdlite's comment)

Comment on lines 17 to 20
declare var __FIZZ_INSTRUCTION_SET_COMPLETE_SEGMENT_FUNCTION__: string;
declare var __FIZZ_INSTRUCTION_SET_COMPLETE_BOUNDARY_FUNCTION__: string;
declare var __FIZZ_INSTRUCTION_SET_STYLE_INSERTION_FUNCTION__: string;
declare var __FIZZ_INSTRUCTION_SET_CLIENT_RENDER_FUNCTION__: string;
Copy link
Collaborator

Choose a reason for hiding this comment

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

Is this required given the var name is embedded in a string in the src? would it be better to encode the exports as '"function ..."' and not have the tokens wrapped in single quotes in format config?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

In this PR that would work fine, but in @mofeiZ's PR, the plan is to inject the implementation directly into the source file. Not as a string. (Meant to unstage this before committing so that was more clear but I forgot.)

@acdlite acdlite marked this pull request as draft October 10, 2022 16:29
@acdlite
Copy link
Collaborator Author

acdlite commented Oct 10, 2022

Going to have to think about how to make this work when running the Jest tests. This string replace thing might not be the best approach.

@sebmarkbage
Copy link
Collaborator

It seems like generating a new module that we import is better than trying to replace strings in the existing module.

@acdlite
Copy link
Collaborator Author

acdlite commented Oct 10, 2022

It seems like generating a new module that we import is better than trying to replace strings in the existing module.

Yeah I like that idea. We started out doing that because we were going to run Closure on it too but stopped when we realized we'd also have to find a way to hardcode the names, too; figured we'd do that as a subsequent PR.

But we could still do the approach generating the module before Rollup runs, even if we're not running Closure yet.

@sebmarkbage
Copy link
Collaborator

Is this just the same as just moving each const ... = to a different file?

@acdlite acdlite force-pushed the extract-fizz-instruction-set branch from 0388d2e to 1c663d2 Compare October 14, 2022 14:41
@acdlite
Copy link
Collaborator Author

acdlite commented Oct 14, 2022

Is this just the same as just moving each const ... = to a different file?

Yeah basically, we overcomplicated it because we were trying to avoid an extra build step for now, and thought we might generate the strings by toString-ing a function imported into the Rollup config. But I think the eventual way we'd do this is to run Closure as a build step, and then also generate modules that export the stringified versions.

So if we check in hardcoded stringified versions, that gets us one step closer to end state. Will figure out Closure stuff some other time, not super urgent.

@acdlite acdlite force-pushed the extract-fizz-instruction-set branch from 1c663d2 to c25709e Compare October 14, 2022 14:51
We're adding an option to Fizz to support an alternate output format
that doesn't rely on inline script tags (see facebook#25437). The two outputs
will share the same "instruction set" of functions. These functions are
currently inlined into the source file; to make this a bit more maintainable,
and eventually have a single source of truth, in preparation for the new option,
this commit moves the instruction set to a separate files that are imported.

In the future, we could improve this further by running Closure on the
instruction set and generating it at build time. This isn't an urgent
improvement, though, because we rarely modify the instruction set.

Co-authored-by: Mofei Zhang <feifei0@fb.com>
@acdlite acdlite force-pushed the extract-fizz-instruction-set branch from c25709e to 36cf5c6 Compare October 14, 2022 14:51
@acdlite acdlite marked this pull request as ready for review October 14, 2022 14:52
@acdlite acdlite merged commit a6bf466 into facebook:main Oct 14, 2022
facebook-github-bot pushed a commit to facebook/react-native that referenced this pull request Oct 17, 2022
Summary:
- **[9fb581c7c](facebook/react@9fb581c7c )**: Refactor: merge duplicate imports ([#25489](facebook/react#25489)) //<c0dedance>//
- **[bc358362a](facebook/react@bc358362a )**: [Flight] Improve Error Messages when Invalid Object is Passed to Client/Host Components ([#25492](facebook/react#25492)) //<Sebastian Markbåge>//
- **[780eacd40](facebook/react@780eacd40 )**: Flow upgrade to 0.190 ([#25483](facebook/react#25483)) //<Jan Kassens>//
- **[54f0e0f73](facebook/react@54f0e0f73 )**: Scaffolding for react-dom/unstable_external-server-runtime ([#25482](facebook/react#25482)) //<Andrew Clark>//
- **[0eaca3756](facebook/react@0eaca3756 )**: Add script to generate inline Fizz runtime ([#25481](facebook/react#25481)) //<Andrew Clark>//
- **[69c7246d9](facebook/react@69c7246d9 )**: Initialize useMemoCache with sentinel values ([#25465](facebook/react#25465)) //<Joseph Savona>//
- **[3b814327e](facebook/react@3b814327e )**: Allow Async Functions to be used in Server Components ([#25479](facebook/react#25479)) //<Sebastian Markbåge>//
- **[a6bf46689](facebook/react@a6bf46689 )**: Extract Fizz instruction set to build macro ([#25457](facebook/react#25457)) //<Andrew Clark>//
- **[ea5bc6bac](facebook/react@ea5bc6bac )**: [React Native FB] dynamic feature flag for ref access warning ([#25471](facebook/react#25471)) //<Jan Kassens>//
- **[08d035bc8](facebook/react@08d035bc8 )**: Remove Shallow Renderer Tests ([#25475](facebook/react#25475)) //<Sebastian Markbåge>//
- **[a8c16a004](facebook/react@a8c16a004 )**: Split Cache into its own Dispatcher ([#25474](facebook/react#25474)) //<Sebastian Markbåge>//
- **[2cf4352e1](facebook/react@2cf4352e1 )**: Implement HostSingleton Fiber type ([#25426](facebook/react#25426)) //<Josh Story>//
- **[aa9988e5e](facebook/react@aa9988e5e )**: Server render fork for react-dom ([#25436](facebook/react#25436)) //<Josh Story>//
- **[513417d69](facebook/react@513417d69 )**: Return lastNonHostInstance in getInspectorDataForInstance for devtools ([#25441](facebook/react#25441)) //<Tianyu Yao>//
- **[5d60a0b84](facebook/react@5d60a0b84 )**: Bugfix: LegacyHidden shouldn't defer effects ([#25442](facebook/react#25442)) //<Andrew Clark>//
- **[618388bc3](facebook/react@618388bc3 )**: [Float] Support script preloads ([#25432](facebook/react#25432)) //<Josh Story>//
- **[2872a26e1](facebook/react@2872a26e1 )**: track resources in different roots separately ([#25388](facebook/react#25388)) //<Josh Story>//
- **[ea04a486a](facebook/react@ea04a486a )**: Flow: remove unused suppressions ([#25424](facebook/react#25424)) //<Jan Kassens>//
- **[9813edef2](facebook/react@9813edef2 )**: Flow upgrade to 0.188 //<Jan Kassens>//
- **[3b6826ed9](facebook/react@3b6826ed9 )**: Flow: inference_mode=constrain_writes //<Jan Kassens>//
- **[aed33a49c](facebook/react@aed33a49c )**: Flow upgrade to 0.185 //<Jan Kassens>//
- **[f02a5f5c7](facebook/react@f02a5f5c7 )**: Flow upgrade to 0.182 //<Jan Kassens>//
- **[72593f008](facebook/react@72593f008 )**: Flow upgrade to 0.176 //<Jan Kassens>//
- **[46d40f306](facebook/react@46d40f306 )**: Flow upgrade to 0.175 //<Jan Kassens>//
- **[1089faf0d](facebook/react@1089faf0d )**: Flow: run codemod to remove existential type //<Jan Kassens>//
- **[3fd9bd8e7](facebook/react@3fd9bd8e7 )**: Add RulesOfHooks support for `use` //<Lauren Tan>//
- **[338e6a967](facebook/react@338e6a967 )**: Flow upgrade to 0.155 //<Jan Kassens>//
- **[8bc95bb3c](facebook/react@8bc95bb3c )**: Flow upgrade to 0.154 //<Jan Kassens>//
- **[9f8a98a39](facebook/react@9f8a98a39 )**: Flow upgrade to 0.153 //<Jan Kassens>//
- **[64fe791be](facebook/react@64fe791be )**: Flow upgrade to 0.146 //<Jan Kassens>//
- **[d3c6c16a0](facebook/react@d3c6c16a0 )**: Flow upgrade to 0.145 //<Jan Kassens>//
- **[00a2f8150](facebook/react@00a2f8150 )**: Flow upgrade to 0.143 //<Jan Kassens>//
- **[0a3072278](facebook/react@0a3072278 )**: Flow: complete types first migration ([#25389](facebook/react#25389)) //<Jan Kassens>//
- **[bcc05671f](facebook/react@bcc05671f )**: Flow: types first in shared ([#25343](facebook/react#25343)) //<Jan Kassens>//
- **[b1f34aa30](facebook/react@b1f34aa30 )**: Flow: types first in react-native-renderer ([#25363](facebook/react#25363)) //<Jan Kassens>//
- **[9143864ae](facebook/react@9143864ae )**: Flow: well formed exports for smaller packages ([#25361](facebook/react#25361)) //<Jan Kassens>//
- **[21a851e03](facebook/react@21a851e03 )**: Fix devtools typos and grammar ([#24587](facebook/react#24587)) //<Alexandru Tasica>//
- **[cfafeb685](facebook/react@cfafeb685 )**: Remove extra space in Wedge.js ([#24611](facebook/react#24611)) //<Kerim Büyükakyüz>//
- **[9c3de25e1](facebook/react@9c3de25e1 )**: Flow: types first in reconciler ([#25362](facebook/react#25362)) //<Jan Kassens>//
- **[7b25b961d](facebook/react@7b25b961d )**: [Fizz/Float] Float for stylesheet resources ([#25243](facebook/react#25243)) //<Josh Story>//
- **[4c016e7aa](facebook/react@4c016e7aa )**: Refactor: use  property shorthand ([#25366](facebook/react#25366)) //<zhangrenyang>//
- **[06066c1a5](facebook/react@06066c1a5 )**: Make RulesOfHooks-test more consistent with ExhaustiveDeps-test //<Lauren Tan>//
- **[49ae0fad8](facebook/react@49ae0fad8 )**: Fix RulesOfHooks test case indentation //<Lauren Tan>//
- **[abbbdf4ce](facebook/react@abbbdf4ce )**: Put modern StrictMode behind a feature flag ([#25365](facebook/react#25365)) //<Samuel Susla>//
- **[434110390](facebook/react@434110390 )**: ReactHooks.js - delete emptyObject ([#25031](facebook/react#25031)) //<Igor Berlenko>//
- **[31400ce29](facebook/react@31400ce29 )**: Refactor: merge duplicate imports ([#25364](facebook/react#25364)) //<jerry-lllman>//
- **[3517bd9f7](facebook/react@3517bd9f7 )**: Refactor useEvent ([#25336](facebook/react#25336)) //<Lauren Tan>//
- **[6cf06a929](facebook/react@6cf06a929 )**: Remove outdated comments. ([#24464](facebook/react#24464)) //<zhangenming>//
- **[20a257c25](facebook/react@20a257c25 )**: Refactor: more word doubles removed ([#25352](facebook/react#25352)) //<Vic Graf>//
- **[8cadcffd5](facebook/react@8cadcffd5 )**: Fix typo: reconcilation -> reconciliation ([#25355](facebook/react#25355)) //<zhangrenyang>//
- **[ebbe599a2](facebook/react@ebbe599a2 )**: Fix EventListener fork ([#25347](facebook/react#25347)) //<Sebastian Markbåge>//
- **[97d75c9c8](facebook/react@97d75c9c8 )**: Move react-dom implementation files to react-dom-bindings ([#25345](facebook/react#25345)) //<Sebastian Markbåge>//
- **[3de926449](facebook/react@3de926449 )**: [Fizz] experimental_useEvent ([#25325](facebook/react#25325)) //<dan>//
- **[5b59dd640](facebook/react@5b59dd640 )**: Fix duplicate words tests ([#25333](facebook/react#25333)) //<Vic Graf>//
- **[cb5084d1c](facebook/react@cb5084d1c )**: [ESLint] Check useEvent references instead ([#25319](facebook/react#25319)) //<Lauren Tan>//
- **[c89a83695](facebook/react@c89a83695 )**: Update RulesOfHooks with useEvent rules ([#25285](facebook/react#25285)) //<Lauren Tan>//
- **[efc6a08e9](facebook/react@efc6a08e9 )**: [Flight] Implement error digests for Flight runtime and expose errorInfo in getDerivedStateFromError ([#25302](facebook/react#25302)) //<Josh Story>//
- **[c1d414d75](facebook/react@c1d414d75 )**: Add ref to Offscreen component ([#25254](facebook/react#25254)) //<Samuel Susla>//
- **[135e33c95](facebook/react@135e33c95 )**: Flow: typing of Scheduler ([#25317](facebook/react#25317)) //<Jan Kassens>//
- **[cc8cb145f](facebook/react@cc8cb145f )**: Flow: add some missing types in react-reconciler ([#25316](facebook/react#25316)) //<Jan Kassens>//
- **[112d0498c](facebook/react@112d0498c )**: [Fizz] Move digest from errorInfo to Error instance ([#25313](facebook/react#25313)) //<Josh Story>//
- **[d1bb1c586](facebook/react@d1bb1c586 )**: Fix memory leak after repeated setState bailouts ([#25309](facebook/react#25309)) //<Andrew Clark>//

Changelog:
[General][Changed] - React Native sync for revisions 0cac4d5...9fb581c

jest_e2e[run_all_tests]

Reviewed By: yungsters

Differential Revision: D40383219

fbshipit-source-id: dc2a44bd05df041e0c7f2e1060640b1d2c372187
rickhanlonii pushed a commit that referenced this pull request Dec 3, 2022
We're adding an option to Fizz to support an alternate output format
that doesn't rely on inline script tags (see #25437). The two outputs
will share the same "instruction set" of functions. These functions are
currently inlined into the source file; to make this a bit more maintainable,
and eventually have a single source of truth, in preparation for the new option,
this commit moves the instruction set to a separate files that are imported.

In the future, we could improve this further by running Closure on the
instruction set and generating it at build time. This isn't an urgent
improvement, though, because we rarely modify the instruction set.

Co-authored-by: Mofei Zhang <feifei0@fb.com>

Co-authored-by: Mofei Zhang <feifei0@fb.com>
mofeiZ added a commit to mofeiZ/react that referenced this pull request Dec 5, 2022
We're adding an option to Fizz to support an alternate output format
that doesn't rely on inline script tags (see facebook#25437). The two outputs
will share the same "instruction set" of functions. These functions are
currently inlined into the source file; to make this a bit more maintainable,
and eventually have a single source of truth, in preparation for the new option,
this commit moves the instruction set to a separate files that are imported.

In the future, we could improve this further by running Closure on the
instruction set and generating it at build time. This isn't an urgent
improvement, though, because we rarely modify the instruction set.

Co-authored-by: Mofei Zhang <feifei0@fb.com>

Co-authored-by: Mofei Zhang <feifei0@fb.com>
OlimpiaZurek pushed a commit to OlimpiaZurek/react-native that referenced this pull request May 22, 2023
Summary:
- **[9fb581c7c](facebook/react@9fb581c7c )**: Refactor: merge duplicate imports ([facebook#25489](facebook/react#25489)) //<c0dedance>//
- **[bc358362a](facebook/react@bc358362a )**: [Flight] Improve Error Messages when Invalid Object is Passed to Client/Host Components ([facebook#25492](facebook/react#25492)) //<Sebastian Markbåge>//
- **[780eacd40](facebook/react@780eacd40 )**: Flow upgrade to 0.190 ([facebook#25483](facebook/react#25483)) //<Jan Kassens>//
- **[54f0e0f73](facebook/react@54f0e0f73 )**: Scaffolding for react-dom/unstable_external-server-runtime ([facebook#25482](facebook/react#25482)) //<Andrew Clark>//
- **[0eaca3756](facebook/react@0eaca3756 )**: Add script to generate inline Fizz runtime ([facebook#25481](facebook/react#25481)) //<Andrew Clark>//
- **[69c7246d9](facebook/react@69c7246d9 )**: Initialize useMemoCache with sentinel values ([facebook#25465](facebook/react#25465)) //<Joseph Savona>//
- **[3b814327e](facebook/react@3b814327e )**: Allow Async Functions to be used in Server Components ([facebook#25479](facebook/react#25479)) //<Sebastian Markbåge>//
- **[a6bf46689](facebook/react@a6bf46689 )**: Extract Fizz instruction set to build macro ([facebook#25457](facebook/react#25457)) //<Andrew Clark>//
- **[ea5bc6bac](facebook/react@ea5bc6bac )**: [React Native FB] dynamic feature flag for ref access warning ([facebook#25471](facebook/react#25471)) //<Jan Kassens>//
- **[08d035bc8](facebook/react@08d035bc8 )**: Remove Shallow Renderer Tests ([facebook#25475](facebook/react#25475)) //<Sebastian Markbåge>//
- **[a8c16a004](facebook/react@a8c16a004 )**: Split Cache into its own Dispatcher ([facebook#25474](facebook/react#25474)) //<Sebastian Markbåge>//
- **[2cf4352e1](facebook/react@2cf4352e1 )**: Implement HostSingleton Fiber type ([facebook#25426](facebook/react#25426)) //<Josh Story>//
- **[aa9988e5e](facebook/react@aa9988e5e )**: Server render fork for react-dom ([facebook#25436](facebook/react#25436)) //<Josh Story>//
- **[513417d69](facebook/react@513417d69 )**: Return lastNonHostInstance in getInspectorDataForInstance for devtools ([facebook#25441](facebook/react#25441)) //<Tianyu Yao>//
- **[5d60a0b84](facebook/react@5d60a0b84 )**: Bugfix: LegacyHidden shouldn't defer effects ([facebook#25442](facebook/react#25442)) //<Andrew Clark>//
- **[618388bc3](facebook/react@618388bc3 )**: [Float] Support script preloads ([facebook#25432](facebook/react#25432)) //<Josh Story>//
- **[2872a26e1](facebook/react@2872a26e1 )**: track resources in different roots separately ([facebook#25388](facebook/react#25388)) //<Josh Story>//
- **[ea04a486a](facebook/react@ea04a486a )**: Flow: remove unused suppressions ([facebook#25424](facebook/react#25424)) //<Jan Kassens>//
- **[9813edef2](facebook/react@9813edef2 )**: Flow upgrade to 0.188 //<Jan Kassens>//
- **[3b6826ed9](facebook/react@3b6826ed9 )**: Flow: inference_mode=constrain_writes //<Jan Kassens>//
- **[aed33a49c](facebook/react@aed33a49c )**: Flow upgrade to 0.185 //<Jan Kassens>//
- **[f02a5f5c7](facebook/react@f02a5f5c7 )**: Flow upgrade to 0.182 //<Jan Kassens>//
- **[72593f008](facebook/react@72593f008 )**: Flow upgrade to 0.176 //<Jan Kassens>//
- **[46d40f306](facebook/react@46d40f306 )**: Flow upgrade to 0.175 //<Jan Kassens>//
- **[1089faf0d](facebook/react@1089faf0d )**: Flow: run codemod to remove existential type //<Jan Kassens>//
- **[3fd9bd8e7](facebook/react@3fd9bd8e7 )**: Add RulesOfHooks support for `use` //<Lauren Tan>//
- **[338e6a967](facebook/react@338e6a967 )**: Flow upgrade to 0.155 //<Jan Kassens>//
- **[8bc95bb3c](facebook/react@8bc95bb3c )**: Flow upgrade to 0.154 //<Jan Kassens>//
- **[9f8a98a39](facebook/react@9f8a98a39 )**: Flow upgrade to 0.153 //<Jan Kassens>//
- **[64fe791be](facebook/react@64fe791be )**: Flow upgrade to 0.146 //<Jan Kassens>//
- **[d3c6c16a0](facebook/react@d3c6c16a0 )**: Flow upgrade to 0.145 //<Jan Kassens>//
- **[00a2f8150](facebook/react@00a2f8150 )**: Flow upgrade to 0.143 //<Jan Kassens>//
- **[0a3072278](facebook/react@0a3072278 )**: Flow: complete types first migration ([facebook#25389](facebook/react#25389)) //<Jan Kassens>//
- **[bcc05671f](facebook/react@bcc05671f )**: Flow: types first in shared ([facebook#25343](facebook/react#25343)) //<Jan Kassens>//
- **[b1f34aa30](facebook/react@b1f34aa30 )**: Flow: types first in react-native-renderer ([facebook#25363](facebook/react#25363)) //<Jan Kassens>//
- **[9143864ae](facebook/react@9143864ae )**: Flow: well formed exports for smaller packages ([facebook#25361](facebook/react#25361)) //<Jan Kassens>//
- **[21a851e03](facebook/react@21a851e03 )**: Fix devtools typos and grammar ([facebook#24587](facebook/react#24587)) //<Alexandru Tasica>//
- **[cfafeb685](facebook/react@cfafeb685 )**: Remove extra space in Wedge.js ([facebook#24611](facebook/react#24611)) //<Kerim Büyükakyüz>//
- **[9c3de25e1](facebook/react@9c3de25e1 )**: Flow: types first in reconciler ([facebook#25362](facebook/react#25362)) //<Jan Kassens>//
- **[7b25b961d](facebook/react@7b25b961d )**: [Fizz/Float] Float for stylesheet resources ([facebook#25243](facebook/react#25243)) //<Josh Story>//
- **[4c016e7aa](facebook/react@4c016e7aa )**: Refactor: use  property shorthand ([facebook#25366](facebook/react#25366)) //<zhangrenyang>//
- **[06066c1a5](facebook/react@06066c1a5 )**: Make RulesOfHooks-test more consistent with ExhaustiveDeps-test //<Lauren Tan>//
- **[49ae0fad8](facebook/react@49ae0fad8 )**: Fix RulesOfHooks test case indentation //<Lauren Tan>//
- **[abbbdf4ce](facebook/react@abbbdf4ce )**: Put modern StrictMode behind a feature flag ([facebook#25365](facebook/react#25365)) //<Samuel Susla>//
- **[434110390](facebook/react@434110390 )**: ReactHooks.js - delete emptyObject ([facebook#25031](facebook/react#25031)) //<Igor Berlenko>//
- **[31400ce29](facebook/react@31400ce29 )**: Refactor: merge duplicate imports ([facebook#25364](facebook/react#25364)) //<jerry-lllman>//
- **[3517bd9f7](facebook/react@3517bd9f7 )**: Refactor useEvent ([facebook#25336](facebook/react#25336)) //<Lauren Tan>//
- **[6cf06a929](facebook/react@6cf06a929 )**: Remove outdated comments. ([facebook#24464](facebook/react#24464)) //<zhangenming>//
- **[20a257c25](facebook/react@20a257c25 )**: Refactor: more word doubles removed ([facebook#25352](facebook/react#25352)) //<Vic Graf>//
- **[8cadcffd5](facebook/react@8cadcffd5 )**: Fix typo: reconcilation -> reconciliation ([facebook#25355](facebook/react#25355)) //<zhangrenyang>//
- **[ebbe599a2](facebook/react@ebbe599a2 )**: Fix EventListener fork ([facebook#25347](facebook/react#25347)) //<Sebastian Markbåge>//
- **[97d75c9c8](facebook/react@97d75c9c8 )**: Move react-dom implementation files to react-dom-bindings ([facebook#25345](facebook/react#25345)) //<Sebastian Markbåge>//
- **[3de926449](facebook/react@3de926449 )**: [Fizz] experimental_useEvent ([facebook#25325](facebook/react#25325)) //<dan>//
- **[5b59dd640](facebook/react@5b59dd640 )**: Fix duplicate words tests ([facebook#25333](facebook/react#25333)) //<Vic Graf>//
- **[cb5084d1c](facebook/react@cb5084d1c )**: [ESLint] Check useEvent references instead ([facebook#25319](facebook/react#25319)) //<Lauren Tan>//
- **[c89a83695](facebook/react@c89a83695 )**: Update RulesOfHooks with useEvent rules ([facebook#25285](facebook/react#25285)) //<Lauren Tan>//
- **[efc6a08e9](facebook/react@efc6a08e9 )**: [Flight] Implement error digests for Flight runtime and expose errorInfo in getDerivedStateFromError ([facebook#25302](facebook/react#25302)) //<Josh Story>//
- **[c1d414d75](facebook/react@c1d414d75 )**: Add ref to Offscreen component ([facebook#25254](facebook/react#25254)) //<Samuel Susla>//
- **[135e33c95](facebook/react@135e33c95 )**: Flow: typing of Scheduler ([facebook#25317](facebook/react#25317)) //<Jan Kassens>//
- **[cc8cb145f](facebook/react@cc8cb145f )**: Flow: add some missing types in react-reconciler ([facebook#25316](facebook/react#25316)) //<Jan Kassens>//
- **[112d0498c](facebook/react@112d0498c )**: [Fizz] Move digest from errorInfo to Error instance ([facebook#25313](facebook/react#25313)) //<Josh Story>//
- **[d1bb1c586](facebook/react@d1bb1c586 )**: Fix memory leak after repeated setState bailouts ([facebook#25309](facebook/react#25309)) //<Andrew Clark>//

Changelog:
[General][Changed] - React Native sync for revisions 0cac4d5...9fb581c

jest_e2e[run_all_tests]

Reviewed By: yungsters

Differential Revision: D40383219

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

6 participants