[Flight] Eval Fake Server Component Functions to Recreate Native Stacks (#29632)

We have three kinds of stacks that we send in the RSC protocol:

- The stack trace where a replayed `console.log` was called on the
server.
- The JSX callsite that created a Server Component which then later
called another component.
- The JSX callsite that created a Host or Client Component.

These stack frames disappear in native stacks on the client since
they're executed on the server. This evals a fake file which only has
one call in it on the same line/column as the server. Then we call
through these fake modules to "replay" the callstack. We then replay the
`console.log` within this stack, or call `console.createTask` in this
stack to recreate the stack.

The main concern with this approach is the performance. It adds
significant cost to create all these eval:ed functions but it should
eventually balance out.

This doesn't yet apply source maps to these. With source maps it'll be
able to show the server source code when clicking the links.

I don't love how these appear.

- Because we haven't yet initialized the client module we don't have the
name of the client component we're about to render yet which leads to
the `<...>` task name.
- The `(async)` suffix Chrome adds is still a problem.
- The VMxxxx prefix is used to disambiguate which is noisy. Might be
helped by source maps.
- The continuation of the async stacks end up rooted somewhere in the
bootstrapping of the app. This might be ok when the bootstrapping ends
up ignore listed but it's kind of a problem that you can't clear the
async stack.

<img width="927" alt="Screenshot 2024-05-28 at 11 58 56 PM"
src="https://github.com/facebook/react/assets/63648/1c9d32ce-e671-47c8-9d18-9fab3bffabd0">

<img width="431" alt="Screenshot 2024-05-28 at 11 58 07 PM"
src="https://github.com/facebook/react/assets/63648/52f57518-bbed-400e-952d-6650835ac6b6">
<img width="327" alt="Screenshot 2024-05-28 at 11 58 31 PM"
src="https://github.com/facebook/react/assets/63648/d311a639-79a1-457f-9a46-4f3298d07e65">

<img width="817" alt="Screenshot 2024-05-28 at 11 59 12 PM"
src="https://github.com/facebook/react/assets/63648/3aefd356-acf4-4daa-bdbf-b8c8345f6d4b">

DiffTrain build for [9d4fba0788](https://github.com/facebook/react/commit/9d4fba078812de0363fe9514b943650fa479e8af)
This commit is contained in:
sebmarkbage
2024-05-30 16:05:47 +00:00
parent 3355e1829a
commit 3e92eb7fe1
32 changed files with 58 additions and 58 deletions
+1 -1
View File
@@ -1 +1 @@
fb61a1b515c5ea0e31b0dac19184454a79c4baf1
9d4fba078812de0363fe9514b943650fa479e8af
+1 -1
View File
@@ -1 +1 @@
fb61a1b515c5ea0e31b0dac19184454a79c4baf1
9d4fba078812de0363fe9514b943650fa479e8af
+1 -1
View File
@@ -22,7 +22,7 @@ if (
) {
__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());
}
var ReactVersion = '19.0.0-www-classic-fb61a1b515-20240530';
var ReactVersion = '19.0.0-www-classic-9d4fba0788-20240530';
// Re-export dynamic flags from the www version.
var dynamicFeatureFlags = require('ReactFeatureFlags');
+1 -1
View File
@@ -22,7 +22,7 @@ if (
) {
__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());
}
var ReactVersion = '19.0.0-www-modern-fb61a1b515-20240530';
var ReactVersion = '19.0.0-www-modern-9d4fba0788-20240530';
// Re-export dynamic flags from the www version.
var dynamicFeatureFlags = require('ReactFeatureFlags');
+1 -1
View File
@@ -684,4 +684,4 @@ exports.useSyncExternalStore = function (
exports.useTransition = function () {
return ReactSharedInternals.H.useTransition();
};
exports.version = "19.0.0-www-classic-fb61a1b515-20240530";
exports.version = "19.0.0-www-classic-9d4fba0788-20240530";
+1 -1
View File
@@ -684,4 +684,4 @@ exports.useSyncExternalStore = function (
exports.useTransition = function () {
return ReactSharedInternals.H.useTransition();
};
exports.version = "19.0.0-www-modern-fb61a1b515-20240530";
exports.version = "19.0.0-www-modern-9d4fba0788-20240530";
@@ -688,7 +688,7 @@ exports.useSyncExternalStore = function (
exports.useTransition = function () {
return ReactSharedInternals.H.useTransition();
};
exports.version = "19.0.0-www-classic-fb61a1b515-20240530";
exports.version = "19.0.0-www-classic-9d4fba0788-20240530";
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
"function" ===
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
@@ -688,7 +688,7 @@ exports.useSyncExternalStore = function (
exports.useTransition = function () {
return ReactSharedInternals.H.useTransition();
};
exports.version = "19.0.0-www-modern-fb61a1b515-20240530";
exports.version = "19.0.0-www-modern-9d4fba0788-20240530";
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
"function" ===
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
@@ -60,7 +60,7 @@ function _assertThisInitialized(self) {
return self;
}
var ReactVersion = '19.0.0-www-classic-fb61a1b515-20240530';
var ReactVersion = '19.0.0-www-classic-9d4fba0788-20240530';
var LegacyRoot = 0;
var ConcurrentRoot = 1;
+1 -1
View File
@@ -60,7 +60,7 @@ function _assertThisInitialized(self) {
return self;
}
var ReactVersion = '19.0.0-www-modern-fb61a1b515-20240530';
var ReactVersion = '19.0.0-www-modern-9d4fba0788-20240530';
var LegacyRoot = 0;
var ConcurrentRoot = 1;
@@ -10640,7 +10640,7 @@ var slice = Array.prototype.slice,
return null;
},
bundleType: 0,
version: "19.0.0-www-classic-fb61a1b515-20240530",
version: "19.0.0-www-classic-9d4fba0788-20240530",
rendererPackageName: "react-art"
};
var internals$jscomp$inline_1370 = {
@@ -10671,7 +10671,7 @@ var internals$jscomp$inline_1370 = {
scheduleRoot: null,
setRefreshHandler: null,
getCurrentFiber: null,
reconcilerVersion: "19.0.0-www-classic-fb61a1b515-20240530"
reconcilerVersion: "19.0.0-www-classic-9d4fba0788-20240530"
};
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
var hook$jscomp$inline_1371 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -10115,7 +10115,7 @@ var slice = Array.prototype.slice,
return null;
},
bundleType: 0,
version: "19.0.0-www-modern-fb61a1b515-20240530",
version: "19.0.0-www-modern-9d4fba0788-20240530",
rendererPackageName: "react-art"
};
var internals$jscomp$inline_1356 = {
@@ -10146,7 +10146,7 @@ var internals$jscomp$inline_1356 = {
scheduleRoot: null,
setRefreshHandler: null,
getCurrentFiber: null,
reconcilerVersion: "19.0.0-www-modern-fb61a1b515-20240530"
reconcilerVersion: "19.0.0-www-modern-9d4fba0788-20240530"
};
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
var hook$jscomp$inline_1357 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -31059,7 +31059,7 @@ identifierPrefix, onUncaughtError, onCaughtError, onRecoverableError, transition
return root;
}
var ReactVersion = '19.0.0-www-classic-fb61a1b515-20240530';
var ReactVersion = '19.0.0-www-classic-9d4fba0788-20240530';
function createPortal$1(children, containerInfo, // TODO: figure out the API for cross-renderer implementation.
implementation) {
+1 -1
View File
@@ -30236,7 +30236,7 @@ identifierPrefix, onUncaughtError, onCaughtError, onRecoverableError, transition
return root;
}
var ReactVersion = '19.0.0-www-modern-fb61a1b515-20240530';
var ReactVersion = '19.0.0-www-modern-9d4fba0788-20240530';
function createPortal$1(children, containerInfo, // TODO: figure out the API for cross-renderer implementation.
implementation) {
@@ -17046,14 +17046,14 @@ function getCrossOriginStringAs(as, input) {
}
var isomorphicReactPackageVersion$jscomp$inline_1753 = React.version;
if (
"19.0.0-www-classic-fb61a1b515-20240530" !==
"19.0.0-www-classic-9d4fba0788-20240530" !==
isomorphicReactPackageVersion$jscomp$inline_1753
)
throw Error(
formatProdErrorMessage(
527,
isomorphicReactPackageVersion$jscomp$inline_1753,
"19.0.0-www-classic-fb61a1b515-20240530"
"19.0.0-www-classic-9d4fba0788-20240530"
)
);
Internals.findDOMNode = function (componentOrElement) {
@@ -17072,7 +17072,7 @@ Internals.Events = [
var devToolsConfig$jscomp$inline_1760 = {
findFiberByHostInstance: getClosestInstanceFromNode,
bundleType: 0,
version: "19.0.0-www-classic-fb61a1b515-20240530",
version: "19.0.0-www-classic-9d4fba0788-20240530",
rendererPackageName: "react-dom"
};
var internals$jscomp$inline_2204 = {
@@ -17102,7 +17102,7 @@ var internals$jscomp$inline_2204 = {
scheduleRoot: null,
setRefreshHandler: null,
getCurrentFiber: null,
reconcilerVersion: "19.0.0-www-classic-fb61a1b515-20240530"
reconcilerVersion: "19.0.0-www-classic-9d4fba0788-20240530"
};
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
var hook$jscomp$inline_2205 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -17606,4 +17606,4 @@ exports.useFormState = function (action, initialState, permalink) {
exports.useFormStatus = function () {
return ReactSharedInternals.H.useHostTransitionStatus();
};
exports.version = "19.0.0-www-classic-fb61a1b515-20240530";
exports.version = "19.0.0-www-classic-9d4fba0788-20240530";
@@ -16409,14 +16409,14 @@ function getCrossOriginStringAs(as, input) {
}
var isomorphicReactPackageVersion$jscomp$inline_1724 = React.version;
if (
"19.0.0-www-modern-fb61a1b515-20240530" !==
"19.0.0-www-modern-9d4fba0788-20240530" !==
isomorphicReactPackageVersion$jscomp$inline_1724
)
throw Error(
formatProdErrorMessage(
527,
isomorphicReactPackageVersion$jscomp$inline_1724,
"19.0.0-www-modern-fb61a1b515-20240530"
"19.0.0-www-modern-9d4fba0788-20240530"
)
);
Internals.findDOMNode = function (componentOrElement) {
@@ -16435,7 +16435,7 @@ Internals.Events = [
var devToolsConfig$jscomp$inline_1726 = {
findFiberByHostInstance: getClosestInstanceFromNode,
bundleType: 0,
version: "19.0.0-www-modern-fb61a1b515-20240530",
version: "19.0.0-www-modern-9d4fba0788-20240530",
rendererPackageName: "react-dom"
};
var internals$jscomp$inline_2195 = {
@@ -16465,7 +16465,7 @@ var internals$jscomp$inline_2195 = {
scheduleRoot: null,
setRefreshHandler: null,
getCurrentFiber: null,
reconcilerVersion: "19.0.0-www-modern-fb61a1b515-20240530"
reconcilerVersion: "19.0.0-www-modern-9d4fba0788-20240530"
};
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
var hook$jscomp$inline_2196 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -16839,4 +16839,4 @@ exports.useFormState = function (action, initialState, permalink) {
exports.useFormStatus = function () {
return ReactSharedInternals.H.useHostTransitionStatus();
};
exports.version = "19.0.0-www-modern-fb61a1b515-20240530";
exports.version = "19.0.0-www-modern-9d4fba0788-20240530";
@@ -17815,14 +17815,14 @@ function getCrossOriginStringAs(as, input) {
}
var isomorphicReactPackageVersion$jscomp$inline_1840 = React.version;
if (
"19.0.0-www-classic-fb61a1b515-20240530" !==
"19.0.0-www-classic-9d4fba0788-20240530" !==
isomorphicReactPackageVersion$jscomp$inline_1840
)
throw Error(
formatProdErrorMessage(
527,
isomorphicReactPackageVersion$jscomp$inline_1840,
"19.0.0-www-classic-fb61a1b515-20240530"
"19.0.0-www-classic-9d4fba0788-20240530"
)
);
Internals.findDOMNode = function (componentOrElement) {
@@ -17841,7 +17841,7 @@ Internals.Events = [
var devToolsConfig$jscomp$inline_1847 = {
findFiberByHostInstance: getClosestInstanceFromNode,
bundleType: 0,
version: "19.0.0-www-classic-fb61a1b515-20240530",
version: "19.0.0-www-classic-9d4fba0788-20240530",
rendererPackageName: "react-dom"
};
(function (internals) {
@@ -17885,7 +17885,7 @@ var devToolsConfig$jscomp$inline_1847 = {
scheduleRoot: null,
setRefreshHandler: null,
getCurrentFiber: null,
reconcilerVersion: "19.0.0-www-classic-fb61a1b515-20240530"
reconcilerVersion: "19.0.0-www-classic-9d4fba0788-20240530"
});
function ReactDOMRoot(internalRoot) {
this._internalRoot = internalRoot;
@@ -18376,7 +18376,7 @@ exports.useFormState = function (action, initialState, permalink) {
exports.useFormStatus = function () {
return ReactSharedInternals.H.useHostTransitionStatus();
};
exports.version = "19.0.0-www-classic-fb61a1b515-20240530";
exports.version = "19.0.0-www-classic-9d4fba0788-20240530";
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
"function" ===
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
@@ -17161,14 +17161,14 @@ function getCrossOriginStringAs(as, input) {
}
var isomorphicReactPackageVersion$jscomp$inline_1811 = React.version;
if (
"19.0.0-www-modern-fb61a1b515-20240530" !==
"19.0.0-www-modern-9d4fba0788-20240530" !==
isomorphicReactPackageVersion$jscomp$inline_1811
)
throw Error(
formatProdErrorMessage(
527,
isomorphicReactPackageVersion$jscomp$inline_1811,
"19.0.0-www-modern-fb61a1b515-20240530"
"19.0.0-www-modern-9d4fba0788-20240530"
)
);
Internals.findDOMNode = function (componentOrElement) {
@@ -17187,7 +17187,7 @@ Internals.Events = [
var devToolsConfig$jscomp$inline_1813 = {
findFiberByHostInstance: getClosestInstanceFromNode,
bundleType: 0,
version: "19.0.0-www-modern-fb61a1b515-20240530",
version: "19.0.0-www-modern-9d4fba0788-20240530",
rendererPackageName: "react-dom"
};
(function (internals) {
@@ -17231,7 +17231,7 @@ var devToolsConfig$jscomp$inline_1813 = {
scheduleRoot: null,
setRefreshHandler: null,
getCurrentFiber: null,
reconcilerVersion: "19.0.0-www-modern-fb61a1b515-20240530"
reconcilerVersion: "19.0.0-www-modern-9d4fba0788-20240530"
});
function ReactDOMRoot(internalRoot) {
this._internalRoot = internalRoot;
@@ -17592,7 +17592,7 @@ exports.useFormState = function (action, initialState, permalink) {
exports.useFormStatus = function () {
return ReactSharedInternals.H.useHostTransitionStatus();
};
exports.version = "19.0.0-www-modern-fb61a1b515-20240530";
exports.version = "19.0.0-www-modern-9d4fba0788-20240530";
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
"function" ===
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&
@@ -19,7 +19,7 @@ if (__DEV__) {
var React = require('react');
var ReactDOM = require('react-dom');
var ReactVersion = '19.0.0-www-classic-fb61a1b515-20240530';
var ReactVersion = '19.0.0-www-classic-9d4fba0788-20240530';
// This refers to a WWW module.
var warningWWW = require('warning');
@@ -19,7 +19,7 @@ if (__DEV__) {
var React = require('react');
var ReactDOM = require('react-dom');
var ReactVersion = '19.0.0-www-modern-fb61a1b515-20240530';
var ReactVersion = '19.0.0-www-modern-9d4fba0788-20240530';
// This refers to a WWW module.
var warningWWW = require('warning');
@@ -5699,4 +5699,4 @@ exports.renderToString = function (children, options) {
'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToReadableStream" which supports Suspense on the server'
);
};
exports.version = "19.0.0-www-classic-fb61a1b515-20240530";
exports.version = "19.0.0-www-classic-9d4fba0788-20240530";
@@ -5677,4 +5677,4 @@ exports.renderToString = function (children, options) {
'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToReadableStream" which supports Suspense on the server'
);
};
exports.version = "19.0.0-www-modern-fb61a1b515-20240530";
exports.version = "19.0.0-www-modern-9d4fba0788-20240530";
@@ -31625,7 +31625,7 @@ identifierPrefix, onUncaughtError, onCaughtError, onRecoverableError, transition
return root;
}
var ReactVersion = '19.0.0-www-classic-fb61a1b515-20240530';
var ReactVersion = '19.0.0-www-classic-9d4fba0788-20240530';
function createPortal$1(children, containerInfo, // TODO: figure out the API for cross-renderer implementation.
implementation) {
@@ -30802,7 +30802,7 @@ identifierPrefix, onUncaughtError, onCaughtError, onRecoverableError, transition
return root;
}
var ReactVersion = '19.0.0-www-modern-fb61a1b515-20240530';
var ReactVersion = '19.0.0-www-modern-9d4fba0788-20240530';
function createPortal$1(children, containerInfo, // TODO: figure out the API for cross-renderer implementation.
implementation) {
@@ -17375,14 +17375,14 @@ function getCrossOriginStringAs(as, input) {
}
var isomorphicReactPackageVersion$jscomp$inline_1783 = React.version;
if (
"19.0.0-www-classic-fb61a1b515-20240530" !==
"19.0.0-www-classic-9d4fba0788-20240530" !==
isomorphicReactPackageVersion$jscomp$inline_1783
)
throw Error(
formatProdErrorMessage(
527,
isomorphicReactPackageVersion$jscomp$inline_1783,
"19.0.0-www-classic-fb61a1b515-20240530"
"19.0.0-www-classic-9d4fba0788-20240530"
)
);
Internals.findDOMNode = function (componentOrElement) {
@@ -17401,7 +17401,7 @@ Internals.Events = [
var devToolsConfig$jscomp$inline_1790 = {
findFiberByHostInstance: getClosestInstanceFromNode,
bundleType: 0,
version: "19.0.0-www-classic-fb61a1b515-20240530",
version: "19.0.0-www-classic-9d4fba0788-20240530",
rendererPackageName: "react-dom"
};
var internals$jscomp$inline_2239 = {
@@ -17431,7 +17431,7 @@ var internals$jscomp$inline_2239 = {
scheduleRoot: null,
setRefreshHandler: null,
getCurrentFiber: null,
reconcilerVersion: "19.0.0-www-classic-fb61a1b515-20240530"
reconcilerVersion: "19.0.0-www-classic-9d4fba0788-20240530"
};
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
var hook$jscomp$inline_2240 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -18086,4 +18086,4 @@ exports.useFormState = function (action, initialState, permalink) {
exports.useFormStatus = function () {
return ReactSharedInternals.H.useHostTransitionStatus();
};
exports.version = "19.0.0-www-classic-fb61a1b515-20240530";
exports.version = "19.0.0-www-classic-9d4fba0788-20240530";
@@ -16797,14 +16797,14 @@ function getCrossOriginStringAs(as, input) {
}
var isomorphicReactPackageVersion$jscomp$inline_1754 = React.version;
if (
"19.0.0-www-modern-fb61a1b515-20240530" !==
"19.0.0-www-modern-9d4fba0788-20240530" !==
isomorphicReactPackageVersion$jscomp$inline_1754
)
throw Error(
formatProdErrorMessage(
527,
isomorphicReactPackageVersion$jscomp$inline_1754,
"19.0.0-www-modern-fb61a1b515-20240530"
"19.0.0-www-modern-9d4fba0788-20240530"
)
);
Internals.findDOMNode = function (componentOrElement) {
@@ -16823,7 +16823,7 @@ Internals.Events = [
var devToolsConfig$jscomp$inline_1756 = {
findFiberByHostInstance: getClosestInstanceFromNode,
bundleType: 0,
version: "19.0.0-www-modern-fb61a1b515-20240530",
version: "19.0.0-www-modern-9d4fba0788-20240530",
rendererPackageName: "react-dom"
};
var internals$jscomp$inline_2230 = {
@@ -16853,7 +16853,7 @@ var internals$jscomp$inline_2230 = {
scheduleRoot: null,
setRefreshHandler: null,
getCurrentFiber: null,
reconcilerVersion: "19.0.0-www-modern-fb61a1b515-20240530"
reconcilerVersion: "19.0.0-www-modern-9d4fba0788-20240530"
};
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
var hook$jscomp$inline_2231 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -17378,4 +17378,4 @@ exports.useFormState = function (action, initialState, permalink) {
exports.useFormStatus = function () {
return ReactSharedInternals.H.useHostTransitionStatus();
};
exports.version = "19.0.0-www-modern-fb61a1b515-20240530";
exports.version = "19.0.0-www-modern-9d4fba0788-20240530";
@@ -28827,7 +28827,7 @@ identifierPrefix, onUncaughtError, onCaughtError, onRecoverableError, transition
return root;
}
var ReactVersion = '19.0.0-www-classic-fb61a1b515-20240530';
var ReactVersion = '19.0.0-www-classic-9d4fba0788-20240530';
/*
* The `'' + value` pattern (used in perf-sensitive code) throws for Symbol
@@ -28095,7 +28095,7 @@ identifierPrefix, onUncaughtError, onCaughtError, onRecoverableError, transition
return root;
}
var ReactVersion = '19.0.0-www-modern-fb61a1b515-20240530';
var ReactVersion = '19.0.0-www-modern-9d4fba0788-20240530';
/*
* The `'' + value` pattern (used in perf-sensitive code) throws for Symbol
@@ -12636,7 +12636,7 @@ module.exports = function ($$$config) {
scheduleRoot: null,
setRefreshHandler: null,
getCurrentFiber: null,
reconcilerVersion: "19.0.0-www-classic-fb61a1b515-20240530"
reconcilerVersion: "19.0.0-www-classic-9d4fba0788-20240530"
};
if ("undefined" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)
devToolsConfig = !1;
@@ -12149,7 +12149,7 @@ module.exports = function ($$$config) {
scheduleRoot: null,
setRefreshHandler: null,
getCurrentFiber: null,
reconcilerVersion: "19.0.0-www-modern-fb61a1b515-20240530"
reconcilerVersion: "19.0.0-www-modern-9d4fba0788-20240530"
};
if ("undefined" === typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)
devToolsConfig = !1;
@@ -23313,7 +23313,7 @@ identifierPrefix, onUncaughtError, onCaughtError, onRecoverableError, transition
return root;
}
var ReactVersion = '19.0.0-www-classic-fb61a1b515-20240530';
var ReactVersion = '19.0.0-www-classic-9d4fba0788-20240530';
/*
* The `'' + value` pattern (used in perf-sensitive code) throws for Symbol
@@ -23313,7 +23313,7 @@ identifierPrefix, onUncaughtError, onCaughtError, onRecoverableError, transition
return root;
}
var ReactVersion = '19.0.0-www-modern-fb61a1b515-20240530';
var ReactVersion = '19.0.0-www-modern-9d4fba0788-20240530';
/*
* The `'' + value` pattern (used in perf-sensitive code) throws for Symbol