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 Edge Server Builds for workerd / edge-light #26116

Merged
merged 4 commits into from
Feb 7, 2023

Conversation

sebmarkbage
Copy link
Collaborator

We currently abuse the browser builds for Web streams derived environments. We already have a special build for Bun but we should also have one for other "edge" runtimes so that we can maximally take advantage of the APIs that exist on each platform.

In practice, we currently check for a global property called AsyncLocalStorage in the server browser builds which we shouldn't really do since browsers likely won't ever have it. Additionally, this should probably move to an import which we can't add to actual browser builds where that will be an invalid import. So it has to be a separate build. That's not done yet in this PR but Vercel will follow Cloudflare's lead here.

The deno key still points to the browser build since there's no AsyncLocalStorage there but it could use this same or a custom build if support is added.

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

react-sizebot commented Feb 6, 2023

Comparing: f0cf832...664b8d1

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 = 154.84 kB 154.84 kB = 49.12 kB 49.12 kB
oss-experimental/react-dom/cjs/react-dom.production.min.js = 156.85 kB 156.85 kB = 49.78 kB 49.78 kB
facebook-www/ReactDOM-prod.classic.js = 533.79 kB 533.79 kB = 95.06 kB 95.06 kB
facebook-www/ReactDOM-prod.modern.js = 518.81 kB 518.81 kB = 92.82 kB 92.82 kB
oss-experimental/react-dom/cjs/react-dom-server.edge.development.js +∞% 0.00 kB 321.60 kB +∞% 0.00 kB 74.15 kB
oss-experimental/react-dom/cjs/react-dom-server.edge.production.min.js +∞% 0.00 kB 56.36 kB +∞% 0.00 kB 17.93 kB
oss-experimental/react-dom/cjs/react-dom-static.edge.development.js +∞% 0.00 kB 320.91 kB +∞% 0.00 kB 73.96 kB
oss-experimental/react-dom/cjs/react-dom-static.edge.production.min.js +∞% 0.00 kB 52.24 kB +∞% 0.00 kB 16.65 kB
oss-experimental/react-dom/server.edge.js +∞% 0.00 kB 0.66 kB +∞% 0.00 kB 0.26 kB
oss-experimental/react-dom/static.edge.js +∞% 0.00 kB 0.22 kB +∞% 0.00 kB 0.16 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.development.js +∞% 0.00 kB 87.85 kB +∞% 0.00 kB 21.63 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.production.min.js +∞% 0.00 kB 23.48 kB +∞% 0.00 kB 8.25 kB
oss-experimental/react-server-dom-webpack/server.edge.js +∞% 0.00 kB 0.25 kB +∞% 0.00 kB 0.17 kB
oss-stable-semver/react-dom/cjs/react-dom-server.edge.development.js +∞% 0.00 kB 320.25 kB +∞% 0.00 kB 73.77 kB
oss-stable-semver/react-dom/cjs/react-dom-server.edge.production.min.js +∞% 0.00 kB 55.93 kB +∞% 0.00 kB 17.76 kB
oss-stable-semver/react-dom/server.edge.js +∞% 0.00 kB 0.66 kB +∞% 0.00 kB 0.26 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.development.js +∞% 0.00 kB 87.80 kB +∞% 0.00 kB 21.61 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.production.min.js +∞% 0.00 kB 23.44 kB +∞% 0.00 kB 8.22 kB
oss-stable-semver/react-server-dom-webpack/server.edge.js +∞% 0.00 kB 0.25 kB +∞% 0.00 kB 0.17 kB
oss-stable/react-dom/cjs/react-dom-server.edge.development.js +∞% 0.00 kB 320.27 kB +∞% 0.00 kB 73.80 kB
oss-stable/react-dom/cjs/react-dom-server.edge.production.min.js +∞% 0.00 kB 55.96 kB +∞% 0.00 kB 17.78 kB
oss-stable/react-dom/server.edge.js +∞% 0.00 kB 0.66 kB +∞% 0.00 kB 0.26 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.development.js +∞% 0.00 kB 87.80 kB +∞% 0.00 kB 21.61 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.production.min.js +∞% 0.00 kB 23.44 kB +∞% 0.00 kB 8.22 kB
oss-stable/react-server-dom-webpack/server.edge.js +∞% 0.00 kB 0.25 kB +∞% 0.00 kB 0.17 kB

Significant size changes

Includes any change greater than 0.2%:

Expand to show
Name +/- Base Current +/- gzip Base gzip Current gzip
oss-experimental/react-dom/cjs/react-dom-server.edge.development.js +∞% 0.00 kB 321.60 kB +∞% 0.00 kB 74.15 kB
oss-experimental/react-dom/cjs/react-dom-server.edge.production.min.js +∞% 0.00 kB 56.36 kB +∞% 0.00 kB 17.93 kB
oss-experimental/react-dom/cjs/react-dom-static.edge.development.js +∞% 0.00 kB 320.91 kB +∞% 0.00 kB 73.96 kB
oss-experimental/react-dom/cjs/react-dom-static.edge.production.min.js +∞% 0.00 kB 52.24 kB +∞% 0.00 kB 16.65 kB
oss-experimental/react-dom/server.edge.js +∞% 0.00 kB 0.66 kB +∞% 0.00 kB 0.26 kB
oss-experimental/react-dom/static.edge.js +∞% 0.00 kB 0.22 kB +∞% 0.00 kB 0.16 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.development.js +∞% 0.00 kB 87.85 kB +∞% 0.00 kB 21.63 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.production.min.js +∞% 0.00 kB 23.48 kB +∞% 0.00 kB 8.25 kB
oss-experimental/react-server-dom-webpack/server.edge.js +∞% 0.00 kB 0.25 kB +∞% 0.00 kB 0.17 kB
oss-stable-semver/react-dom/cjs/react-dom-server.edge.development.js +∞% 0.00 kB 320.25 kB +∞% 0.00 kB 73.77 kB
oss-stable-semver/react-dom/cjs/react-dom-server.edge.production.min.js +∞% 0.00 kB 55.93 kB +∞% 0.00 kB 17.76 kB
oss-stable-semver/react-dom/server.edge.js +∞% 0.00 kB 0.66 kB +∞% 0.00 kB 0.26 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.development.js +∞% 0.00 kB 87.80 kB +∞% 0.00 kB 21.61 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.production.min.js +∞% 0.00 kB 23.44 kB +∞% 0.00 kB 8.22 kB
oss-stable-semver/react-server-dom-webpack/server.edge.js +∞% 0.00 kB 0.25 kB +∞% 0.00 kB 0.17 kB
oss-stable/react-dom/cjs/react-dom-server.edge.development.js +∞% 0.00 kB 320.27 kB +∞% 0.00 kB 73.80 kB
oss-stable/react-dom/cjs/react-dom-server.edge.production.min.js +∞% 0.00 kB 55.96 kB +∞% 0.00 kB 17.78 kB
oss-stable/react-dom/server.edge.js +∞% 0.00 kB 0.66 kB +∞% 0.00 kB 0.26 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.development.js +∞% 0.00 kB 87.80 kB +∞% 0.00 kB 21.61 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.production.min.js +∞% 0.00 kB 23.44 kB +∞% 0.00 kB 8.22 kB
oss-stable/react-server-dom-webpack/server.edge.js +∞% 0.00 kB 0.25 kB +∞% 0.00 kB 0.17 kB
oss-experimental/react-server-dom-webpack/umd/react-server-dom-webpack-server.browser.development.js = 92.29 kB 91.74 kB = 21.92 kB 21.75 kB
oss-stable-semver/react-server-dom-webpack/umd/react-server-dom-webpack-server.browser.development.js = 92.23 kB 91.68 kB = 21.90 kB 21.73 kB
oss-stable/react-server-dom-webpack/umd/react-server-dom-webpack-server.browser.development.js = 92.23 kB 91.68 kB = 21.90 kB 21.73 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.development.js = 87.90 kB 87.37 kB = 21.66 kB 21.49 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.development.js = 87.85 kB 87.32 kB = 21.64 kB 21.47 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.development.js = 87.85 kB 87.32 kB = 21.64 kB 21.47 kB
oss-experimental/react-server-dom-webpack/umd/react-server-dom-webpack-server.browser.production.min.js = 23.66 kB 23.49 kB = 8.35 kB 8.27 kB
oss-stable-semver/react-server-dom-webpack/umd/react-server-dom-webpack-server.browser.production.min.js = 23.63 kB 23.46 kB = 8.33 kB 8.25 kB
oss-stable/react-server-dom-webpack/umd/react-server-dom-webpack-server.browser.production.min.js = 23.63 kB 23.46 kB = 8.33 kB 8.25 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.production.min.js = 23.48 kB 23.31 kB = 8.25 kB 8.18 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.production.min.js = 23.44 kB 23.27 kB = 8.23 kB 8.16 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.production.min.js = 23.44 kB 23.27 kB = 8.23 kB 8.16 kB

Generated by 🚫 dangerJS against 664b8d1

@sebmarkbage
Copy link
Collaborator Author

We really should be supporting all those environments - including running a Server Components server inside Electron or in React Native on device. Just need someone to own testing and evaluating it.

Comment on lines +52 to +53
"workerd": "./server.edge.js",
"edge-light": "./server.edge.js",
Copy link
Contributor

Choose a reason for hiding this comment

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

Isn't edge-light supposed to be a "catch-all" for those environments discussed by WinterCG? If yes, why the workerd condition is used here if it points to the same file? What about other conditions like edge-routine, netlify, etc?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

edge-light is specifically Vercel's environment. These are the only ones we've tested and evaluated the other ones if they work as expected. Afaik, the other ones don't have AsyncLocalStorage yet so they'd use the browser build.

Copy link
Contributor

Choose a reason for hiding this comment

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

Is there any condition that acts as a catch-all? I understand that it might not work for your use case here but some other libraries might just want to ship something that works in any worker-like environment. The browser condition doesn't work well for that right now.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Yea, I've looked into that before. Mainly the thing that sucks is that there's no distinction between "serviceworker" and "worker"-like on the server isn't the same a "worker" on the client. E.g. these APIs can't really be used in actual web workers but can be used in "serviceworker". So I've been waiting on further clarification on that before moving further.

I think the notion of these environments just being "a simple worker" is getting to be outdated as more features are added. I suspect it'll be more like a special "wintercg worker" concept or something that's a superset that's useful.

Copy link
Contributor

Choose a reason for hiding this comment

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

It's definitely not always possible to use a single condition to catch them all - but as long as you only need some subset of the functionality, then it makes sense to reuse the condition.

Do you have any opinions about Next adding the support for worker condition as well? It just looks so off to me that it resolves browser but not worker

"./server.node": "./server.node.js",
"./static": {
"workerd": "./static.edge.js",
"edge-light": "./static.edge.js",
"deno": "./static.browser.js",
"worker": "./static.browser.js",
Copy link
Contributor

Choose a reason for hiding this comment

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

We currently abuse the browser builds for Web streams derived environments. We already have a special build for Bun but we should also have one for other "edge" runtimes so that we can maximally take advantage of the APIs that exist on each platform.

Wouldn't it make sense to also include the worker condition (that is defined here) when Next.js bundles for the edge-light runtime? The worker condition is IMHO closer to edge-light than the browser condition is to it. So it's a little bit of a weird situation that browser is automatically picked up but the worker is not.

For context - we've shipped the worker condition in Emotion in hope that it would get picked up by tools. There were no strong signals that other conditions would have to be needed and this seemed like a good "catch all" at the time.

What is different in the content of the files that you return here for the edge-light and worker?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

“worker” doesn’t have AsyncLocalStorage. The other two would include require(“node:async_hooks”) which would fail on worker builds.

Copy link
Collaborator

@gnoff gnoff left a comment

Choose a reason for hiding this comment

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

approved but I think there is one misconfig (unless i misunderstand)

@@ -258,6 +258,19 @@ const bundles = [
externals: ['react', 'react-dom'],
},

/******* React DOM Fizz Server Edge *******/
{
bundleTypes: [BUN_DEV, BUN_PROD],
Copy link
Collaborator

Choose a reason for hiding this comment

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

This isn't right, right? makes more sense to use the NODE ones thought even that needs a refactor

Copy link
Collaborator Author

@sebmarkbage sebmarkbage Feb 7, 2023

Choose a reason for hiding this comment

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

Yea, copy paste. Those options don't really make sense since they're all shared anyway. We should probably get rid of the bun ones. It's really CJS.

@sebmarkbage sebmarkbage merged commit 01a0c4e into facebook:main Feb 7, 2023
github-actions bot pushed a commit that referenced this pull request Feb 7, 2023
We currently abuse the browser builds for Web streams derived
environments. We already have a special build for Bun but we should also
have one for [other "edge"
runtimes](https://runtime-keys.proposal.wintercg.org/) so that we can
maximally take advantage of the APIs that exist on each platform.

In practice, we currently check for a global property called
`AsyncLocalStorage` in the server browser builds which we shouldn't
really do since browsers likely won't ever have it. Additionally, this
should probably move to an import which we can't add to actual browser
builds where that will be an invalid import. So it has to be a separate
build. That's not done yet in this PR but Vercel will follow
Cloudflare's lead here.

The `deno` key still points to the browser build since there's no
AsyncLocalStorage there but it could use this same or a custom build if
support is added.

DiffTrain build for [01a0c4e](01a0c4e)
[View git log for this commit](https://github.com/facebook/react/commits/01a0c4e12c6aa9732d290e13b1452f72d276934d)
facebook-github-bot pushed a commit to facebook/react-native that referenced this pull request Feb 15, 2023
Summary:
This sync includes the following changes:
- **[86c8c8db7](facebook/react@86c8c8db7 )**: test: Don't retry flushActWork if flushUntilNextPaint threw ([#26121](facebook/react#26121)) //<Sebastian Silbermann>//
- **[64acd3918](facebook/react@64acd3918 )**: remove unguarded getRootNode call ([#26152](facebook/react#26152)) //<Josh Story>//
- **[71cace4d3](facebook/react@71cace4d3 )**: Migrate testRunner from jasmine2 to jest-circus ([#26144](facebook/react#26144)) //<Ming Ye>//
- **[c8510227c](facebook/react@c8510227c )**: Treat displayName as undefined ([#26148](facebook/react#26148)) //<Sebastian Markbåge>//
- **[55542bc73](facebook/react@55542bc73 )**: Update jest printBasicPrototype config ([#26142](facebook/react#26142)) //<Ming Ye>//
- **[6396b6641](facebook/react@6396b6641 )**: Model Float on Hoistables semantics ([#26106](facebook/react#26106)) //<Josh Story>//
- **[ef9f6e77b](facebook/react@ef9f6e77b )**: Enable passing Server References from Server to Client ([#26124](facebook/react#26124)) //<Sebastian Markbåge>//
- **[35698311d](facebook/react@35698311d )**: Update jest escapeString config ([#26140](facebook/react#26140)) //<Ming Ye>//
- **[6ddcbd4f9](facebook/react@6ddcbd4f9 )**: [flow] enable LTI inference mode ([#26104](facebook/react#26104)) //<Jan Kassens>//
- **[53b1f69ba](facebook/react@53b1f69ba )**: Implement unstable_getBoundingClientRect in RN Fabric refs ([#26137](facebook/react#26137)) //<Rubén Norte>//
- **[594093496](facebook/react@594093496 )**: Update to Jest 29 ([#26088](facebook/react#26088)) //<Ming Ye>//
- **[28fcae062](facebook/react@28fcae062 )**: Add support for SVG `transformOrigin` prop ([#26130](facebook/react#26130)) //<Aravind D>//
- **[3ff1540e9](facebook/react@3ff1540e9 )**: Prefer JSX in ReactNoop assertions (to combat out-of-memory test runs) ([#26127](facebook/react#26127)) //<Sebastian Silbermann>//
- **[01a0c4e12](facebook/react@01a0c4e12 )**: Add Edge Server Builds for workerd / edge-light ([#26116](facebook/react#26116)) //<Sebastian Markbåge>//
- **[f0cf832e1](facebook/react@f0cf832e1 )**: Update Flight Fixture to "use client" instead of .client.js ([#26118](facebook/react#26118)) //<Sebastian Markbåge>//
- **[03a216070](facebook/react@03a216070 )**: Rename "dom" fork to "dom-node" and "bun" fork to "dom-bun" ([#26117](facebook/react#26117)) //<Sebastian Markbåge>//
- **[4bf2113a1](facebook/react@4bf2113a1 )**: Revert "Move the Webpack manifest config to one level deeper ([#26083](facebook/react#26083))"  ([#26111](facebook/react#26111)) //<Sebastian Markbåge>//
- **[2ef24145e](facebook/react@2ef24145e )**: [flow] upgrade to 0.199.0 ([#26096](facebook/react#26096)) //<Jan Kassens>//
- **[922dd7ba5](facebook/react@922dd7ba5 )**: Revert the outer module object to an object ([#26093](facebook/react#26093)) //<Sebastian Markbåge>//
- **[9d111ffdf](facebook/react@9d111ffdf )**: Serialize Promises through Flight ([#26086](facebook/react#26086)) //<Sebastian Markbåge>//
- **[0ba4698c7](facebook/react@0ba4698c7 )**: Fix async test in React reconciler ([#26087](facebook/react#26087)) //<Ming Ye>//
- **[8c234c0de](facebook/react@8c234c0de )**: Move the Webpack manifest config to one level deeper ([#26083](facebook/react#26083)) //<Sebastian Markbåge>//
- **[977bccd24](facebook/react@977bccd24 )**: Refactor Flight Encoding ([#26082](facebook/react#26082)) //<Sebastian Markbåge>//
- **[d7bb524ad](facebook/react@d7bb524ad )**: [cleanup] Remove unused package jest-mock-scheduler ([#26084](facebook/react#26084)) //<Ming Ye>//
- **[6b3083266](facebook/react@6b3083266 )**: Upgrade prettier ([#26081](facebook/react#26081)) //<Jan Kassens>//
- **[1f5ce59dd](facebook/react@1f5ce59dd )**: [cleanup] fully roll out warnAboutSpreadingKeyToJSX ([#26080](facebook/react#26080)) //<Jan Kassens>//

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

jest_e2e[run_all_tests]

Reviewed By: rubennorte

Differential Revision: D43305607

fbshipit-source-id: 8da7567ca2a182f4be27788935c2da30a731f83b
OlimpiaZurek pushed a commit to OlimpiaZurek/react-native that referenced this pull request May 22, 2023
Summary:
This sync includes the following changes:
- **[86c8c8db7](facebook/react@86c8c8db7 )**: test: Don't retry flushActWork if flushUntilNextPaint threw ([facebook#26121](facebook/react#26121)) //<Sebastian Silbermann>//
- **[64acd3918](facebook/react@64acd3918 )**: remove unguarded getRootNode call ([facebook#26152](facebook/react#26152)) //<Josh Story>//
- **[71cace4d3](facebook/react@71cace4d3 )**: Migrate testRunner from jasmine2 to jest-circus ([facebook#26144](facebook/react#26144)) //<Ming Ye>//
- **[c8510227c](facebook/react@c8510227c )**: Treat displayName as undefined ([facebook#26148](facebook/react#26148)) //<Sebastian Markbåge>//
- **[55542bc73](facebook/react@55542bc73 )**: Update jest printBasicPrototype config ([facebook#26142](facebook/react#26142)) //<Ming Ye>//
- **[6396b6641](facebook/react@6396b6641 )**: Model Float on Hoistables semantics ([facebook#26106](facebook/react#26106)) //<Josh Story>//
- **[ef9f6e77b](facebook/react@ef9f6e77b )**: Enable passing Server References from Server to Client ([facebook#26124](facebook/react#26124)) //<Sebastian Markbåge>//
- **[35698311d](facebook/react@35698311d )**: Update jest escapeString config ([facebook#26140](facebook/react#26140)) //<Ming Ye>//
- **[6ddcbd4f9](facebook/react@6ddcbd4f9 )**: [flow] enable LTI inference mode ([facebook#26104](facebook/react#26104)) //<Jan Kassens>//
- **[53b1f69ba](facebook/react@53b1f69ba )**: Implement unstable_getBoundingClientRect in RN Fabric refs ([facebook#26137](facebook/react#26137)) //<Rubén Norte>//
- **[594093496](facebook/react@594093496 )**: Update to Jest 29 ([facebook#26088](facebook/react#26088)) //<Ming Ye>//
- **[28fcae062](facebook/react@28fcae062 )**: Add support for SVG `transformOrigin` prop ([facebook#26130](facebook/react#26130)) //<Aravind D>//
- **[3ff1540e9](facebook/react@3ff1540e9 )**: Prefer JSX in ReactNoop assertions (to combat out-of-memory test runs) ([facebook#26127](facebook/react#26127)) //<Sebastian Silbermann>//
- **[01a0c4e12](facebook/react@01a0c4e12 )**: Add Edge Server Builds for workerd / edge-light ([facebook#26116](facebook/react#26116)) //<Sebastian Markbåge>//
- **[f0cf832e1](facebook/react@f0cf832e1 )**: Update Flight Fixture to "use client" instead of .client.js ([facebook#26118](facebook/react#26118)) //<Sebastian Markbåge>//
- **[03a216070](facebook/react@03a216070 )**: Rename "dom" fork to "dom-node" and "bun" fork to "dom-bun" ([facebook#26117](facebook/react#26117)) //<Sebastian Markbåge>//
- **[4bf2113a1](facebook/react@4bf2113a1 )**: Revert "Move the Webpack manifest config to one level deeper ([facebook#26083](facebook/react#26083))"  ([facebook#26111](facebook/react#26111)) //<Sebastian Markbåge>//
- **[2ef24145e](facebook/react@2ef24145e )**: [flow] upgrade to 0.199.0 ([facebook#26096](facebook/react#26096)) //<Jan Kassens>//
- **[922dd7ba5](facebook/react@922dd7ba5 )**: Revert the outer module object to an object ([facebook#26093](facebook/react#26093)) //<Sebastian Markbåge>//
- **[9d111ffdf](facebook/react@9d111ffdf )**: Serialize Promises through Flight ([facebook#26086](facebook/react#26086)) //<Sebastian Markbåge>//
- **[0ba4698c7](facebook/react@0ba4698c7 )**: Fix async test in React reconciler ([facebook#26087](facebook/react#26087)) //<Ming Ye>//
- **[8c234c0de](facebook/react@8c234c0de )**: Move the Webpack manifest config to one level deeper ([facebook#26083](facebook/react#26083)) //<Sebastian Markbåge>//
- **[977bccd24](facebook/react@977bccd24 )**: Refactor Flight Encoding ([facebook#26082](facebook/react#26082)) //<Sebastian Markbåge>//
- **[d7bb524ad](facebook/react@d7bb524ad )**: [cleanup] Remove unused package jest-mock-scheduler ([facebook#26084](facebook/react#26084)) //<Ming Ye>//
- **[6b3083266](facebook/react@6b3083266 )**: Upgrade prettier ([facebook#26081](facebook/react#26081)) //<Jan Kassens>//
- **[1f5ce59dd](facebook/react@1f5ce59dd )**: [cleanup] fully roll out warnAboutSpreadingKeyToJSX ([facebook#26080](facebook/react#26080)) //<Jan Kassens>//

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

jest_e2e[run_all_tests]

Reviewed By: rubennorte

Differential Revision: D43305607

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

5 participants