dillon1000/react

Commit

[Flight] Track Owner on AsyncLocalStorage When Available (#28807)

Stacked on #28798.

Add another AsyncLocalStorage to the FlightServerConfig. This context
tracks data on a per component level. Currently the only thing we track
is the owner in DEV.

AsyncLocalStorage around each component comes with a performance cost so
we only do it DEV. It's not generally a particularly safe operation
because you can't necessarily associate side-effects with a component
based on execution scope. It can be a lazy initializer or cache():ed
code etc. We also don't support string refs anymore for a reason.

However, it's good enough for optional dev only information like the
owner.
Browse files
Changed paths15 files
First-parent comparison
M packages/react-server-dom-webpack/src/__tests__/ReactFlightDOMEdge-test.js ModifiedM packages/react-server/src/ReactFlightServer.js ModifiedM packages/react-server/src/flight/ReactFlightAsyncDispatcher.js ModifiedA packages/react-server/src/flight/ReactFlightCurrentOwner.js AddedM packages/react-server/src/forks/ReactFlightServerConfig.custom.js ModifiedM packages/react-server/src/forks/ReactFlightServerConfig.dom-browser-esm.js ModifiedM packages/react-server/src/forks/ReactFlightServerConfig.dom-browser-turbopack.js ModifiedM packages/react-server/src/forks/ReactFlightServerConfig.dom-browser.js ModifiedM packages/react-server/src/forks/ReactFlightServerConfig.dom-bun.js ModifiedM packages/react-server/src/forks/ReactFlightServerConfig.dom-edge-turbopack.js ModifiedM packages/react-server/src/forks/ReactFlightServerConfig.dom-edge.js ModifiedM packages/react-server/src/forks/ReactFlightServerConfig.dom-legacy.js ModifiedM packages/react-server/src/forks/ReactFlightServerConfig.dom-node-esm.js ModifiedM packages/react-server/src/forks/ReactFlightServerConfig.dom-node-turbopack.js ModifiedM packages/react-server/src/forks/ReactFlightServerConfig.dom-node.js Modified
Patch

Files changed

Rendering syntax-highlighted changes…