From c6a78b2ca04605db18cfaefb493e0ef4f4e92986 Mon Sep 17 00:00:00 2001 From: sebmarkbage Date: Thu, 4 Apr 2024 01:57:57 +0000 Subject: [PATCH] Use a Wrapper Error for onRecoverableError with a "cause" Field for the real Error (#28736) We basically have four kinds of recoverable errors: - Hydration mismatches. - Server errored but client didn't. - Hydration render errored but client render didn't (in Root or Suspense boundary). - Concurrent render errored but synchronous render didn't. For the first three we log an additional error that the root or Suspense boundary didn't error. This provides some context about what happened. However, the problem is that for hydration mismatches that's unnecessary extra context that is confusing. We also don't log any additional context for concurrent render errors that could recover. This used to be the only recoverable error so it didn't need extra context but now we need to distinguish them. When we log these to `reportError` it's confusing to just see the error because you didn't see anything error on the page. It's also hard to group them together as one. In this PR, I remove the unnecessary context for hydration mismatches. For hydration and concurrent errors, I now wrap them in an error that describes that what happened but then use the new `cause` field to link the original error so we can keep that as the cause. The error that happened was that hydration client rendered or you deopted to sync render, the cause of that error is some other error. For server errors, we control the Error object so I already had added some context to that error object's message. Since we hide the message in prod, it's nice not to have the raw message in DEV neither. We could potentially split these into two errors for parity though. DiffTrain build for commit https://github.com/facebook/react/commit/6090cab099a8f7f373e04c7eb2937425a8f80f80. --- .../cjs/ReactTestRenderer-dev.js | 404 ++++---- .../cjs/ReactTestRenderer-prod.js | 420 ++++---- .../cjs/ReactTestRenderer-profiling.js | 469 +++++---- .../Libraries/Renderer/REVISION | 2 +- .../implementations/ReactFabric-dev.fb.js | 938 +++++++++--------- .../implementations/ReactFabric-prod.fb.js | 720 +++++++------- .../ReactFabric-profiling.fb.js | 764 +++++++------- .../ReactNativeRenderer-dev.fb.js | 938 +++++++++--------- .../ReactNativeRenderer-prod.fb.js | 740 +++++++------- .../ReactNativeRenderer-profiling.fb.js | 784 +++++++-------- 10 files changed, 3030 insertions(+), 3149 deletions(-) diff --git a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react-test-renderer/cjs/ReactTestRenderer-dev.js b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react-test-renderer/cjs/ReactTestRenderer-dev.js index 3150885e3f..8d2b3c21d1 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react-test-renderer/cjs/ReactTestRenderer-dev.js +++ b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react-test-renderer/cjs/ReactTestRenderer-dev.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<> + * @generated SignedSource<> */ "use strict"; @@ -2881,6 +2881,163 @@ if (__DEV__) { var objectIs = typeof Object.is === "function" ? Object.is : is; // $FlowFixMe[method-unbinding] + function describeBuiltInComponentFrame(name, ownerFn) { + { + var ownerName = null; + + if (ownerFn) { + ownerName = ownerFn.displayName || ownerFn.name || null; + } + + return describeComponentFrame(name, ownerName); + } + } + function describeDebugInfoFrame(name, env) { + return describeBuiltInComponentFrame( + name + (env ? " (" + env + ")" : ""), + null + ); + } + + { + var PossiblyWeakMap$1 = typeof WeakMap === "function" ? WeakMap : Map; + new PossiblyWeakMap$1(); + } + + function describeComponentFrame(name, ownerName) { + var sourceInfo = ""; + + if (ownerName) { + sourceInfo = " (created by " + ownerName + ")"; + } + + return "\n in " + (name || "Unknown") + sourceInfo; + } + + function describeClassComponentFrame(ctor, ownerFn) { + { + return describeFunctionComponentFrame(ctor, ownerFn); + } + } + function describeFunctionComponentFrame(fn, ownerFn) { + { + if (!fn) { + return ""; + } + + var name = fn.displayName || fn.name || null; + var ownerName = null; + + if (ownerFn) { + ownerName = ownerFn.displayName || ownerFn.name || null; + } + + return describeComponentFrame(name, ownerName); + } + } + + function describeFiber(fiber) { + var owner = fiber._debugOwner ? fiber._debugOwner.type : null; + + switch (fiber.tag) { + case HostHoistable: + case HostSingleton: + case HostComponent: + return describeBuiltInComponentFrame(fiber.type, owner); + + case LazyComponent: + return describeBuiltInComponentFrame("Lazy", owner); + + case SuspenseComponent: + return describeBuiltInComponentFrame("Suspense", owner); + + case SuspenseListComponent: + return describeBuiltInComponentFrame("SuspenseList", owner); + + case FunctionComponent: + case SimpleMemoComponent: + return describeFunctionComponentFrame(fiber.type, owner); + + case ForwardRef: + return describeFunctionComponentFrame(fiber.type.render, owner); + + case ClassComponent: + return describeClassComponentFrame(fiber.type, owner); + + default: + return ""; + } + } + + function getStackByFiberInDevAndProd(workInProgress) { + try { + var info = ""; + var node = workInProgress; + + do { + info += describeFiber(node); + + if (true) { + // Add any Server Component stack frames in reverse order. + var debugInfo = node._debugInfo; + + if (debugInfo) { + for (var i = debugInfo.length - 1; i >= 0; i--) { + var entry = debugInfo[i]; + + if (typeof entry.name === "string") { + info += describeDebugInfoFrame(entry.name, entry.env); + } + } + } + } // $FlowFixMe[incompatible-type] we bail out when we get a null + + node = node.return; + } while (node); + + return info; + } catch (x) { + return "\nError generating stack: " + x.message + "\n" + x.stack; + } + } + + var CapturedStacks = new WeakMap(); + function createCapturedValueAtFiber(value, source) { + // If the value is an error, call this function immediately after it is thrown + // so the stack is accurate. + var stack; + + if (typeof value === "object" && value !== null) { + var capturedStack = CapturedStacks.get(value); + + if (typeof capturedStack === "string") { + stack = capturedStack; + } else { + stack = getStackByFiberInDevAndProd(source); + CapturedStacks.set(value, stack); + } + } else { + stack = getStackByFiberInDevAndProd(source); + } + + return { + value: value, + source: source, + stack: stack + }; + } + function createCapturedValueFromError(value, stack) { + if (typeof stack === "string") { + CapturedStacks.set(value, stack); + } + + return { + value: value, + source: null, + stack: stack + }; + } + var contextStackCursor = createCursor(null); var contextFiberStackCursor = createCursor(null); var rootInstanceStackCursor = createCursor(null); // Represents the nearest host transition provider (in React DOM, a
) @@ -5085,126 +5242,6 @@ if (__DEV__) { return true; } - function describeBuiltInComponentFrame(name, ownerFn) { - { - var ownerName = null; - - if (ownerFn) { - ownerName = ownerFn.displayName || ownerFn.name || null; - } - - return describeComponentFrame(name, ownerName); - } - } - function describeDebugInfoFrame(name, env) { - return describeBuiltInComponentFrame( - name + (env ? " (" + env + ")" : ""), - null - ); - } - - { - var PossiblyWeakMap$1 = typeof WeakMap === "function" ? WeakMap : Map; - new PossiblyWeakMap$1(); - } - - function describeComponentFrame(name, ownerName) { - var sourceInfo = ""; - - if (ownerName) { - sourceInfo = " (created by " + ownerName + ")"; - } - - return "\n in " + (name || "Unknown") + sourceInfo; - } - - function describeClassComponentFrame(ctor, ownerFn) { - { - return describeFunctionComponentFrame(ctor, ownerFn); - } - } - function describeFunctionComponentFrame(fn, ownerFn) { - { - if (!fn) { - return ""; - } - - var name = fn.displayName || fn.name || null; - var ownerName = null; - - if (ownerFn) { - ownerName = ownerFn.displayName || ownerFn.name || null; - } - - return describeComponentFrame(name, ownerName); - } - } - - function describeFiber(fiber) { - var owner = fiber._debugOwner ? fiber._debugOwner.type : null; - - switch (fiber.tag) { - case HostHoistable: - case HostSingleton: - case HostComponent: - return describeBuiltInComponentFrame(fiber.type, owner); - - case LazyComponent: - return describeBuiltInComponentFrame("Lazy", owner); - - case SuspenseComponent: - return describeBuiltInComponentFrame("Suspense", owner); - - case SuspenseListComponent: - return describeBuiltInComponentFrame("SuspenseList", owner); - - case FunctionComponent: - case SimpleMemoComponent: - return describeFunctionComponentFrame(fiber.type, owner); - - case ForwardRef: - return describeFunctionComponentFrame(fiber.type.render, owner); - - case ClassComponent: - return describeClassComponentFrame(fiber.type, owner); - - default: - return ""; - } - } - - function getStackByFiberInDevAndProd(workInProgress) { - try { - var info = ""; - var node = workInProgress; - - do { - info += describeFiber(node); - - if (true) { - // Add any Server Component stack frames in reverse order. - var debugInfo = node._debugInfo; - - if (debugInfo) { - for (var i = debugInfo.length - 1; i >= 0; i--) { - var entry = debugInfo[i]; - - if (typeof entry.name === "string") { - info += describeDebugInfoFrame(entry.name, entry.env); - } - } - } - } // $FlowFixMe[incompatible-type] we bail out when we get a null - - node = node.return; - } while (node); - - return info; - } catch (x) { - return "\nError generating stack: " + x.message + "\n" + x.stack; - } - } - var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame; var current = null; var isRendering = false; @@ -13203,43 +13240,6 @@ if (__DEV__) { return baseProps; } - var CapturedStacks = new WeakMap(); - function createCapturedValueAtFiber(value, source) { - // If the value is an error, call this function immediately after it is thrown - // so the stack is accurate. - var stack; - - if (typeof value === "object" && value !== null) { - var capturedStack = CapturedStacks.get(value); - - if (typeof capturedStack === "string") { - stack = capturedStack; - } else { - stack = getStackByFiberInDevAndProd(source); - CapturedStacks.set(value, stack); - } - } else { - stack = getStackByFiberInDevAndProd(source); - } - - return { - value: value, - source: source, - stack: stack - }; - } - function createCapturedValueFromError(value, stack) { - if (typeof stack === "string") { - CapturedStacks.set(value, stack); - } - - return { - value: value, - source: null, - stack: stack - }; - } - var reportGlobalError = typeof reportError === "function" // In modern browsers, reportError will dispatch an error event, ? // emulating an uncaught JavaScript error. @@ -13802,8 +13802,17 @@ if (__DEV__) { } } // This is a regular error, not a Suspense wakeable. - value = createCapturedValueAtFiber(value, sourceFiber); - renderDidError(value); // We didn't find a boundary that could handle this type of exception. Start + var wrapperError = new Error( + "There was an error during concurrent rendering but React was able to recover by " + + "instead synchronously rendering the entire root.", + { + cause: value + } + ); + queueConcurrentError( + createCapturedValueAtFiber(wrapperError, sourceFiber) + ); + renderDidError(); // We didn't find a boundary that could handle this type of exception. Start // over and traverse parent path again, this time treating the exception // as an error. @@ -13813,26 +13822,30 @@ if (__DEV__) { return true; } + var errorInfo = createCapturedValueAtFiber(value, sourceFiber); var workInProgress = returnFiber; do { switch (workInProgress.tag) { case HostRoot: { - var _errorInfo = value; workInProgress.flags |= ShouldCapture; - var lane = pickArbitraryLane(rootRenderLanes); - workInProgress.lanes = mergeLanes(workInProgress.lanes, lane); - var update = createRootErrorUpdate( + + var _lane = pickArbitraryLane(rootRenderLanes); + + workInProgress.lanes = mergeLanes(workInProgress.lanes, _lane); + + var _update = createRootErrorUpdate( workInProgress.stateNode, - _errorInfo, - lane + errorInfo, + _lane ); - enqueueCapturedUpdate(workInProgress, update); + + enqueueCapturedUpdate(workInProgress, _update); return false; } case ClassComponent: - var errorInfo = value; + // Capture and retry var ctor = workInProgress.type; var instance = workInProgress.stateNode; @@ -13845,19 +13858,19 @@ if (__DEV__) { ) { workInProgress.flags |= ShouldCapture; - var _lane = pickArbitraryLane(rootRenderLanes); + var _lane2 = pickArbitraryLane(rootRenderLanes); - workInProgress.lanes = mergeLanes(workInProgress.lanes, _lane); // Schedule the error boundary to re-render using updated state + workInProgress.lanes = mergeLanes(workInProgress.lanes, _lane2); // Schedule the error boundary to re-render using updated state - var _update = createClassErrorUpdate(_lane); + var _update2 = createClassErrorUpdate(_lane2); initializeClassErrorUpdate( - _update, + _update2, root, workInProgress, errorInfo ); - enqueueCapturedUpdate(workInProgress, _update); + enqueueCapturedUpdate(workInProgress, _update2); return false; } @@ -15720,20 +15733,12 @@ if (__DEV__) { function retrySuspenseComponentWithoutHydrating( current, workInProgress, - renderLanes, - recoverableError + renderLanes ) { // Falling back to client rendering. Because this has performance // implications, it's considered a recoverable error, even though the user // likely won't observe anything wrong with the UI. - // - // The error is passed in as an argument to enforce that every caller provide - // a custom message, or explicitly opt out (currently the only path that opts - // out is legacy mode; every concurrent path provides an error). - if (recoverableError !== null) { - queueHydrationError(recoverableError); - } // This will add the old fiber to the deletion list - + // This will add the old fiber to the deletion list reconcileChildFibers(workInProgress, current.child, null, renderLanes); // We're now not suspended nor dehydrated. var nextProps = workInProgress.pendingProps; @@ -15819,9 +15824,7 @@ if (__DEV__) { message = _getSuspenseInstanceF.message; stack = _getSuspenseInstanceF.stack; componentStack = _getSuspenseInstanceF.componentStack; - } - - var capturedValue = null; // TODO: Figure out a better signal than encoding a magic digest value. + } // TODO: Figure out a better signal than encoding a magic digest value. { var error; @@ -15839,17 +15842,17 @@ if (__DEV__) { error.stack = stack || ""; error.digest = digest; - capturedValue = createCapturedValueFromError( + var capturedValue = createCapturedValueFromError( error, componentStack === undefined ? null : componentStack ); + queueHydrationError(capturedValue); } return retrySuspenseComponentWithoutHydrating( current, workInProgress, - renderLanes, - capturedValue + renderLanes ); } // any context has changed, we need to treat is as if the input might have changed. @@ -15909,8 +15912,7 @@ if (__DEV__) { return retrySuspenseComponentWithoutHydrating( current, workInProgress, - renderLanes, - null + renderLanes ); } else if (isSuspenseInstancePending()) { // This component is still pending more data from the server, so we can't hydrate its @@ -15949,22 +15951,13 @@ if (__DEV__) { // something either suspended or errored. if (workInProgress.flags & ForceClientRender) { // Something errored during hydration. Try again without hydrating. + // The error should've already been logged in throwException. pushPrimaryTreeSuspenseHandler(workInProgress); workInProgress.flags &= ~ForceClientRender; - - var _capturedValue = createCapturedValueFromError( - new Error( - "There was an error while hydrating this Suspense boundary. " + - "Switched to client rendering." - ), - null - ); - return retrySuspenseComponentWithoutHydrating( current, workInProgress, - renderLanes, - _capturedValue + renderLanes ); } else if (workInProgress.memoizedState !== null) { // Something suspended and we should still be in dehydrated mode. @@ -23830,11 +23823,12 @@ if (__DEV__) { ); } } - function renderDidError(error) { + function renderDidError() { if (workInProgressRootExitStatus !== RootSuspendedWithDelay) { workInProgressRootExitStatus = RootErrored; } - + } + function queueConcurrentError(error) { if (workInProgressRootConcurrentErrors === null) { workInProgressRootConcurrentErrors = [error]; } else { @@ -26798,7 +26792,7 @@ if (__DEV__) { return root; } - var ReactVersion = "19.0.0-canary-9dd5e9f4"; + var ReactVersion = "19.0.0-canary-7222486b"; // Might add PROFILE later. diff --git a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react-test-renderer/cjs/ReactTestRenderer-prod.js b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react-test-renderer/cjs/ReactTestRenderer-prod.js index ac2f689e10..edf401cfa2 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react-test-renderer/cjs/ReactTestRenderer-prod.js +++ b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react-test-renderer/cjs/ReactTestRenderer-prod.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<> + * @generated SignedSource<> */ "use strict"; @@ -653,8 +653,63 @@ function invalidateContextProvider(workInProgress, type, didChange) { function is(x, y) { return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y); } -var objectIs = "function" === typeof Object.is ? Object.is : is, - contextStackCursor = createCursor(null), +var objectIs = "function" === typeof Object.is ? Object.is : is; +function describeComponentFrame(name, ownerName) { + var sourceInfo = ""; + ownerName && (sourceInfo = " (created by " + ownerName + ")"); + return "\n in " + (name || "Unknown") + sourceInfo; +} +function describeFunctionComponentFrame(fn) { + return fn + ? describeComponentFrame(fn.displayName || fn.name || null, null) + : ""; +} +function describeFiber(fiber) { + switch (fiber.tag) { + case 26: + case 27: + case 5: + return describeComponentFrame(fiber.type, null); + case 16: + return describeComponentFrame("Lazy", null); + case 13: + return describeComponentFrame("Suspense", null); + case 19: + return describeComponentFrame("SuspenseList", null); + case 0: + case 15: + return describeFunctionComponentFrame(fiber.type); + case 11: + return describeFunctionComponentFrame(fiber.type.render); + case 1: + return (fiber = describeFunctionComponentFrame(fiber.type)), fiber; + default: + return ""; + } +} +function getStackByFiberInDevAndProd(workInProgress) { + try { + var info = ""; + do + (info += describeFiber(workInProgress)), + (workInProgress = workInProgress.return); + while (workInProgress); + return info; + } catch (x) { + return "\nError generating stack: " + x.message + "\n" + x.stack; + } +} +var CapturedStacks = new WeakMap(); +function createCapturedValueAtFiber(value, source) { + if ("object" === typeof value && null !== value) { + var stack = CapturedStacks.get(value); + "string" !== typeof stack && + ((stack = getStackByFiberInDevAndProd(source)), + CapturedStacks.set(value, stack)); + } else stack = getStackByFiberInDevAndProd(source); + return { value: value, source: source, stack: stack }; +} +var contextStackCursor = createCursor(null), contextFiberStackCursor = createCursor(null), rootInstanceStackCursor = createCursor(null), hostTransitionProviderCursor = createCursor(null), @@ -1242,51 +1297,6 @@ function shallowEqual(objA, objB) { } return !0; } -function describeComponentFrame(name, ownerName) { - var sourceInfo = ""; - ownerName && (sourceInfo = " (created by " + ownerName + ")"); - return "\n in " + (name || "Unknown") + sourceInfo; -} -function describeFunctionComponentFrame(fn) { - return fn - ? describeComponentFrame(fn.displayName || fn.name || null, null) - : ""; -} -function describeFiber(fiber) { - switch (fiber.tag) { - case 26: - case 27: - case 5: - return describeComponentFrame(fiber.type, null); - case 16: - return describeComponentFrame("Lazy", null); - case 13: - return describeComponentFrame("Suspense", null); - case 19: - return describeComponentFrame("SuspenseList", null); - case 0: - case 15: - return describeFunctionComponentFrame(fiber.type); - case 11: - return describeFunctionComponentFrame(fiber.type.render); - case 1: - return (fiber = describeFunctionComponentFrame(fiber.type)), fiber; - default: - return ""; - } -} -function getStackByFiberInDevAndProd(workInProgress) { - try { - var info = ""; - do - (info += describeFiber(workInProgress)), - (workInProgress = workInProgress.return); - while (workInProgress); - return info; - } catch (x) { - return "\nError generating stack: " + x.message + "\n" + x.stack; - } -} var SuspenseException = Error( "Suspense Exception: This is not a real error! It's an implementation detail of `use` to interrupt the current render. You must either rethrow it immediately, or move the `use` call outside of the `try/catch` block. Capturing without rethrowing will lead to unexpected behavior.\n\nTo handle async errors, wrap your component in an error boundary, or call the promise's `.catch` method and pass the result to `use`" ), @@ -3542,20 +3552,6 @@ function resolveDefaultProps(Component, baseProps) { } return baseProps; } -var CapturedStacks = new WeakMap(); -function createCapturedValueAtFiber(value, source) { - if ("object" === typeof value && null !== value) { - var stack = CapturedStacks.get(value); - "string" !== typeof stack && - ((stack = getStackByFiberInDevAndProd(source)), - CapturedStacks.set(value, stack)); - } else stack = getStackByFiberInDevAndProd(source); - return { value: value, source: source, stack: stack }; -} -function createCapturedValueFromError(value, stack) { - "string" === typeof stack && CapturedStacks.set(value, stack); - return { value: value, source: null, stack: stack }; -} var reportGlobalError = "function" === typeof reportError ? reportError @@ -3670,32 +3666,31 @@ function throwException( "object" === typeof value && "function" === typeof value.then ) { - var wakeable = value; - value = sourceFiber.tag; + var tag = sourceFiber.tag; 0 !== (sourceFiber.mode & 1) || - (0 !== value && 11 !== value && 15 !== value) || - ((value = sourceFiber.alternate) - ? ((sourceFiber.updateQueue = value.updateQueue), - (sourceFiber.memoizedState = value.memoizedState), - (sourceFiber.lanes = value.lanes)) + (0 !== tag && 11 !== tag && 15 !== tag) || + ((tag = sourceFiber.alternate) + ? ((sourceFiber.updateQueue = tag.updateQueue), + (sourceFiber.memoizedState = tag.memoizedState), + (sourceFiber.lanes = tag.lanes)) : ((sourceFiber.updateQueue = null), (sourceFiber.memoizedState = null))); - value = suspenseHandlerStackCursor.current; - if (null !== value) { - switch (value.tag) { + tag = suspenseHandlerStackCursor.current; + if (null !== tag) { + switch (tag.tag) { case 13: return ( sourceFiber.mode & 1 && (null === shellBoundary ? renderDidSuspendDelayIfPossible() - : null === value.alternate && + : null === tag.alternate && 0 === workInProgressRootExitStatus && (workInProgressRootExitStatus = 3)), - (value.flags &= -257), - 0 === (value.mode & 1) - ? value === returnFiber - ? (value.flags |= 65536) - : ((value.flags |= 128), + (tag.flags &= -257), + 0 === (tag.mode & 1) + ? tag === returnFiber + ? (tag.flags |= 65536) + : ((tag.flags |= 128), (sourceFiber.flags |= 131072), (sourceFiber.flags &= -52805), 1 === sourceFiber.tag @@ -3708,48 +3703,48 @@ function throwException( null === sourceFiber.alternate && (sourceFiber.tag = 28), (sourceFiber.lanes |= 2)) - : ((value.flags |= 65536), (value.lanes = rootRenderLanes)), - wakeable === noopSuspenseyCommitThenable - ? (value.flags |= 16384) - : ((returnFiber = value.updateQueue), + : ((tag.flags |= 65536), (tag.lanes = rootRenderLanes)), + value === noopSuspenseyCommitThenable + ? (tag.flags |= 16384) + : ((returnFiber = tag.updateQueue), null === returnFiber - ? (value.updateQueue = new Set([wakeable])) - : returnFiber.add(wakeable), - value.mode & 1 && - attachPingListener(root, wakeable, rootRenderLanes)), + ? (tag.updateQueue = new Set([value])) + : returnFiber.add(value), + tag.mode & 1 && + attachPingListener(root, value, rootRenderLanes)), !1 ); case 22: - if (value.mode & 1) + if (tag.mode & 1) return ( - (value.flags |= 65536), - wakeable === noopSuspenseyCommitThenable - ? (value.flags |= 16384) - : ((returnFiber = value.updateQueue), + (tag.flags |= 65536), + value === noopSuspenseyCommitThenable + ? (tag.flags |= 16384) + : ((returnFiber = tag.updateQueue), null === returnFiber ? ((returnFiber = { transitions: null, markerInstances: null, - retryQueue: new Set([wakeable]) + retryQueue: new Set([value]) }), - (value.updateQueue = returnFiber)) + (tag.updateQueue = returnFiber)) : ((sourceFiber = returnFiber.retryQueue), null === sourceFiber - ? (returnFiber.retryQueue = new Set([wakeable])) - : sourceFiber.add(wakeable)), - attachPingListener(root, wakeable, rootRenderLanes)), + ? (returnFiber.retryQueue = new Set([value])) + : sourceFiber.add(value)), + attachPingListener(root, value, rootRenderLanes)), !1 ); } throw Error( "Unexpected Suspense handler tag (" + - value.tag + + tag.tag + "). This is a bug in React." ); } if (1 === root.tag) return ( - attachPingListener(root, wakeable, rootRenderLanes), + attachPingListener(root, value, rootRenderLanes), renderDidSuspendDelayIfPossible(), !1 ); @@ -3757,58 +3752,58 @@ function throwException( "A component suspended while responding to synchronous input. This will cause the UI to be replaced with a loading indicator. To fix, updates that suspend should be wrapped with startTransition." ); } - wakeable = value = createCapturedValueAtFiber(value, sourceFiber); - 4 !== workInProgressRootExitStatus && (workInProgressRootExitStatus = 2); + tag = createCapturedValueAtFiber( + Error( + "There was an error during concurrent rendering but React was able to recover by instead synchronously rendering the entire root.", + { cause: value } + ), + sourceFiber + ); null === workInProgressRootConcurrentErrors - ? (workInProgressRootConcurrentErrors = [wakeable]) - : workInProgressRootConcurrentErrors.push(wakeable); + ? (workInProgressRootConcurrentErrors = [tag]) + : workInProgressRootConcurrentErrors.push(tag); + 4 !== workInProgressRootExitStatus && (workInProgressRootExitStatus = 2); if (null === returnFiber) return !0; - wakeable = returnFiber; + value = createCapturedValueAtFiber(value, sourceFiber); do { - switch (wakeable.tag) { + switch (returnFiber.tag) { case 3: return ( - (root = value), - (wakeable.flags |= 65536), - (rootRenderLanes &= -rootRenderLanes), - (wakeable.lanes |= rootRenderLanes), - (root = createRootErrorUpdate( - wakeable.stateNode, - root, - rootRenderLanes - )), - enqueueCapturedUpdate(wakeable, root), + (returnFiber.flags |= 65536), + (root = rootRenderLanes & -rootRenderLanes), + (returnFiber.lanes |= root), + (root = createRootErrorUpdate(returnFiber.stateNode, value, root)), + enqueueCapturedUpdate(returnFiber, root), !1 ); case 1: - returnFiber = value; - sourceFiber = wakeable.type; - var instance = wakeable.stateNode; if ( - 0 === (wakeable.flags & 128) && - ("function" === typeof sourceFiber.getDerivedStateFromError || - (null !== instance && - "function" === typeof instance.componentDidCatch && - (null === legacyErrorBoundariesThatAlreadyFailed || - !legacyErrorBoundariesThatAlreadyFailed.has(instance)))) + ((sourceFiber = returnFiber.type), + (tag = returnFiber.stateNode), + 0 === (returnFiber.flags & 128) && + ("function" === typeof sourceFiber.getDerivedStateFromError || + (null !== tag && + "function" === typeof tag.componentDidCatch && + (null === legacyErrorBoundariesThatAlreadyFailed || + !legacyErrorBoundariesThatAlreadyFailed.has(tag))))) ) return ( - (wakeable.flags |= 65536), + (returnFiber.flags |= 65536), (rootRenderLanes &= -rootRenderLanes), - (wakeable.lanes |= rootRenderLanes), + (returnFiber.lanes |= rootRenderLanes), (rootRenderLanes = createClassErrorUpdate(rootRenderLanes)), initializeClassErrorUpdate( rootRenderLanes, root, - wakeable, - returnFiber + returnFiber, + value ), - enqueueCapturedUpdate(wakeable, rootRenderLanes), + enqueueCapturedUpdate(returnFiber, rootRenderLanes), !1 ); } - wakeable = wakeable.return; - } while (null !== wakeable); + returnFiber = returnFiber.return; + } while (null !== returnFiber); return !1; } var ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner, @@ -4424,17 +4419,10 @@ function updateSuspenseComponent(current, workInProgress, renderLanes) { workInProgress.flags & 256 ? (pushPrimaryTreeSuspenseHandler(workInProgress), (workInProgress.flags &= -257), - (JSCompiler_temp = createCapturedValueFromError( - Error( - "There was an error while hydrating this Suspense boundary. Switched to client rendering." - ), - null - )), (workInProgress = retrySuspenseComponentWithoutHydrating( current, workInProgress, - renderLanes, - JSCompiler_temp + renderLanes ))) : null !== workInProgress.memoizedState ? (reuseSuspenseHandlerOnStack(workInProgress), @@ -4484,12 +4472,14 @@ function updateSuspenseComponent(current, workInProgress, renderLanes) { )), (nextProps.stack = ""), (nextProps.digest = JSCompiler_temp), - (JSCompiler_temp = createCapturedValueFromError(nextProps, null)), + (JSCompiler_temp = { value: nextProps, source: null, stack: null }), + null === hydrationErrors + ? (hydrationErrors = [JSCompiler_temp]) + : hydrationErrors.push(JSCompiler_temp), (workInProgress = retrySuspenseComponentWithoutHydrating( current, workInProgress, - renderLanes, - JSCompiler_temp + renderLanes )); else if ( ((JSCompiler_temp = 0 !== (renderLanes & current.childLanes)), @@ -4553,8 +4543,7 @@ function updateSuspenseComponent(current, workInProgress, renderLanes) { workInProgress = retrySuspenseComponentWithoutHydrating( current, workInProgress, - renderLanes, - null + renderLanes ); } else shim$1() @@ -4691,13 +4680,8 @@ function mountSuspenseFallbackChildren( function retrySuspenseComponentWithoutHydrating( current, workInProgress, - renderLanes, - recoverableError + renderLanes ) { - null !== recoverableError && - (null === hydrationErrors - ? (hydrationErrors = [recoverableError]) - : hydrationErrors.push(recoverableError)); reconcileChildFibers(workInProgress, current.child, null, renderLanes); current = mountSuspensePrimaryChildren( workInProgress, @@ -5564,14 +5548,14 @@ function cutOffTailIfNeeded(renderState, hasRenderedATailFallback) { break; case "collapsed": lastTailNode = renderState.tail; - for (var lastTailNode$70 = null; null !== lastTailNode; ) - null !== lastTailNode.alternate && (lastTailNode$70 = lastTailNode), + for (var lastTailNode$68 = null; null !== lastTailNode; ) + null !== lastTailNode.alternate && (lastTailNode$68 = lastTailNode), (lastTailNode = lastTailNode.sibling); - null === lastTailNode$70 + null === lastTailNode$68 ? hasRenderedATailFallback || null === renderState.tail ? (renderState.tail = null) : (renderState.tail.sibling = null) - : (lastTailNode$70.sibling = null); + : (lastTailNode$68.sibling = null); } } function bubbleProperties(completedWork) { @@ -5581,19 +5565,19 @@ function bubbleProperties(completedWork) { newChildLanes = 0, subtreeFlags = 0; if (didBailout) - for (var child$71 = completedWork.child; null !== child$71; ) - (newChildLanes |= child$71.lanes | child$71.childLanes), - (subtreeFlags |= child$71.subtreeFlags & 31457280), - (subtreeFlags |= child$71.flags & 31457280), - (child$71.return = completedWork), - (child$71 = child$71.sibling); + for (var child$69 = completedWork.child; null !== child$69; ) + (newChildLanes |= child$69.lanes | child$69.childLanes), + (subtreeFlags |= child$69.subtreeFlags & 31457280), + (subtreeFlags |= child$69.flags & 31457280), + (child$69.return = completedWork), + (child$69 = child$69.sibling); else - for (child$71 = completedWork.child; null !== child$71; ) - (newChildLanes |= child$71.lanes | child$71.childLanes), - (subtreeFlags |= child$71.subtreeFlags), - (subtreeFlags |= child$71.flags), - (child$71.return = completedWork), - (child$71 = child$71.sibling); + for (child$69 = completedWork.child; null !== child$69; ) + (newChildLanes |= child$69.lanes | child$69.childLanes), + (subtreeFlags |= child$69.subtreeFlags), + (subtreeFlags |= child$69.flags), + (child$69.return = completedWork), + (child$69 = child$69.sibling); completedWork.subtreeFlags |= subtreeFlags; completedWork.childLanes = newChildLanes; return didBailout; @@ -5756,11 +5740,11 @@ function completeWork(current, workInProgress, renderLanes) { null !== newProps.alternate.memoizedState && null !== newProps.alternate.memoizedState.cachePool && (index = newProps.alternate.memoizedState.cachePool.pool); - var cache$75 = null; + var cache$73 = null; null !== newProps.memoizedState && null !== newProps.memoizedState.cachePool && - (cache$75 = newProps.memoizedState.cachePool.pool); - cache$75 !== index && (newProps.flags |= 2048); + (cache$73 = newProps.memoizedState.cachePool.pool); + cache$73 !== index && (newProps.flags |= 2048); } renderLanes !== current && renderLanes && @@ -5787,8 +5771,8 @@ function completeWork(current, workInProgress, renderLanes) { index = workInProgress.memoizedState; if (null === index) return bubbleProperties(workInProgress), null; newProps = 0 !== (workInProgress.flags & 128); - cache$75 = index.rendering; - if (null === cache$75) + cache$73 = index.rendering; + if (null === cache$73) if (newProps) cutOffTailIfNeeded(index, !1); else { if ( @@ -5796,11 +5780,11 @@ function completeWork(current, workInProgress, renderLanes) { (null !== current && 0 !== (current.flags & 128)) ) for (current = workInProgress.child; null !== current; ) { - cache$75 = findFirstSuspended(current); - if (null !== cache$75) { + cache$73 = findFirstSuspended(current); + if (null !== cache$73) { workInProgress.flags |= 128; cutOffTailIfNeeded(index, !1); - current = cache$75.updateQueue; + current = cache$73.updateQueue; workInProgress.updateQueue = current; scheduleRetryEffect(workInProgress, current); workInProgress.subtreeFlags = 0; @@ -5825,7 +5809,7 @@ function completeWork(current, workInProgress, renderLanes) { } else { if (!newProps) - if (((current = findFirstSuspended(cache$75)), null !== current)) { + if (((current = findFirstSuspended(cache$73)), null !== current)) { if ( ((workInProgress.flags |= 128), (newProps = !0), @@ -5835,7 +5819,7 @@ function completeWork(current, workInProgress, renderLanes) { cutOffTailIfNeeded(index, !0), null === index.tail && "hidden" === index.tailMode && - !cache$75.alternate) + !cache$73.alternate) ) return bubbleProperties(workInProgress), null; } else @@ -5847,13 +5831,13 @@ function completeWork(current, workInProgress, renderLanes) { cutOffTailIfNeeded(index, !1), (workInProgress.lanes = 4194304)); index.isBackwards - ? ((cache$75.sibling = workInProgress.child), - (workInProgress.child = cache$75)) + ? ((cache$73.sibling = workInProgress.child), + (workInProgress.child = cache$73)) : ((current = index.last), null !== current - ? (current.sibling = cache$75) - : (workInProgress.child = cache$75), - (index.last = cache$75)); + ? (current.sibling = cache$73) + : (workInProgress.child = cache$73), + (index.last = cache$73)); } if (null !== index.tail) return ( @@ -6075,8 +6059,8 @@ function safelyDetachRef(current, nearestMountedAncestor) { else if ("function" === typeof ref) try { ref(null); - } catch (error$91) { - captureCommitPhaseError(current, nearestMountedAncestor, error$91); + } catch (error$89) { + captureCommitPhaseError(current, nearestMountedAncestor, error$89); } else ref.current = null; } @@ -6183,10 +6167,10 @@ function commitHookEffectListMount(flags, finishedWork) { var effect = (finishedWork = finishedWork.next); do { if ((effect.tag & flags) === flags) { - var create$92 = effect.create, + var create$90 = effect.create, inst = effect.inst; - create$92 = create$92(); - inst.destroy = create$92; + create$90 = create$90(); + inst.destroy = create$90; } effect = effect.next; } while (effect !== finishedWork); @@ -6241,11 +6225,11 @@ function commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) { current, finishedRoot.__reactInternalSnapshotBeforeUpdate ); - } catch (error$93) { + } catch (error$91) { captureCommitPhaseError( finishedWork, finishedWork.return, - error$93 + error$91 ); } } @@ -6620,8 +6604,8 @@ function commitMutationEffectsOnFiber(finishedWork, root) { } try { commitHookEffectListUnmount(5, finishedWork, finishedWork.return); - } catch (error$101) { - captureCommitPhaseError(finishedWork, finishedWork.return, error$101); + } catch (error$99) { + captureCommitPhaseError(finishedWork, finishedWork.return, error$99); } } break; @@ -6659,8 +6643,8 @@ function commitMutationEffectsOnFiber(finishedWork, root) { finishedWork.updateQueue = null; try { (flags.type = type), (flags.props = existingHiddenCallbacks); - } catch (error$104) { - captureCommitPhaseError(finishedWork, finishedWork.return, error$104); + } catch (error$102) { + captureCommitPhaseError(finishedWork, finishedWork.return, error$102); } } break; @@ -6676,8 +6660,8 @@ function commitMutationEffectsOnFiber(finishedWork, root) { existingHiddenCallbacks = finishedWork.memoizedProps; try { flags.text = existingHiddenCallbacks; - } catch (error$105) { - captureCommitPhaseError(finishedWork, finishedWork.return, error$105); + } catch (error$103) { + captureCommitPhaseError(finishedWork, finishedWork.return, error$103); } } break; @@ -6763,11 +6747,11 @@ function commitMutationEffectsOnFiber(finishedWork, root) { wasHidden.stateNode.isHidden = existingHiddenCallbacks ? !0 : !1; - } catch (error$95) { + } catch (error$93) { captureCommitPhaseError( finishedWork, finishedWork.return, - error$95 + error$93 ); } } else if ( @@ -6845,12 +6829,12 @@ function commitReconciliationEffects(finishedWork) { break; case 3: case 4: - var parent$96 = JSCompiler_inline_result.stateNode.containerInfo, - before$97 = getHostSibling(finishedWork); + var parent$94 = JSCompiler_inline_result.stateNode.containerInfo, + before$95 = getHostSibling(finishedWork); insertOrAppendPlacementNodeIntoContainer( finishedWork, - before$97, - parent$96 + before$95, + parent$94 ); break; default: @@ -7979,8 +7963,8 @@ function renderRootSync(root, lanes) { } workLoopSync(); break; - } catch (thrownValue$113) { - handleThrow(root, thrownValue$113); + } catch (thrownValue$111) { + handleThrow(root, thrownValue$111); } while (1); lanes && root.shellSuspendCounter++; @@ -8088,8 +8072,8 @@ function renderRootConcurrent(root, lanes) { } workLoopConcurrent(); break; - } catch (thrownValue$115) { - handleThrow(root, thrownValue$115); + } catch (thrownValue$113) { + handleThrow(root, thrownValue$113); } while (1); resetContextDependencies(); @@ -9221,19 +9205,19 @@ function wrapFiber(fiber) { fiberToWrapper.set(fiber, wrapper)); return wrapper; } -var devToolsConfig$jscomp$inline_999 = { +var devToolsConfig$jscomp$inline_995 = { findFiberByHostInstance: function () { throw Error("TestRenderer does not support findFiberByHostInstance()"); }, bundleType: 0, - version: "19.0.0-canary-f27d0c93", + version: "19.0.0-canary-ffc2b014", rendererPackageName: "react-test-renderer" }; -var internals$jscomp$inline_1183 = { - bundleType: devToolsConfig$jscomp$inline_999.bundleType, - version: devToolsConfig$jscomp$inline_999.version, - rendererPackageName: devToolsConfig$jscomp$inline_999.rendererPackageName, - rendererConfig: devToolsConfig$jscomp$inline_999.rendererConfig, +var internals$jscomp$inline_1185 = { + bundleType: devToolsConfig$jscomp$inline_995.bundleType, + version: devToolsConfig$jscomp$inline_995.version, + rendererPackageName: devToolsConfig$jscomp$inline_995.rendererPackageName, + rendererConfig: devToolsConfig$jscomp$inline_995.rendererConfig, overrideHookState: null, overrideHookStateDeletePath: null, overrideHookStateRenamePath: null, @@ -9250,26 +9234,26 @@ var internals$jscomp$inline_1183 = { return null === fiber ? null : fiber.stateNode; }, findFiberByHostInstance: - devToolsConfig$jscomp$inline_999.findFiberByHostInstance || + devToolsConfig$jscomp$inline_995.findFiberByHostInstance || emptyFindFiberByHostInstance, findHostInstancesForRefresh: null, scheduleRefresh: null, scheduleRoot: null, setRefreshHandler: null, getCurrentFiber: null, - reconcilerVersion: "19.0.0-canary-f27d0c93" + reconcilerVersion: "19.0.0-canary-ffc2b014" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { - var hook$jscomp$inline_1184 = __REACT_DEVTOOLS_GLOBAL_HOOK__; + var hook$jscomp$inline_1186 = __REACT_DEVTOOLS_GLOBAL_HOOK__; if ( - !hook$jscomp$inline_1184.isDisabled && - hook$jscomp$inline_1184.supportsFiber + !hook$jscomp$inline_1186.isDisabled && + hook$jscomp$inline_1186.supportsFiber ) try { - (rendererID = hook$jscomp$inline_1184.inject( - internals$jscomp$inline_1183 + (rendererID = hook$jscomp$inline_1186.inject( + internals$jscomp$inline_1185 )), - (injectedHook = hook$jscomp$inline_1184); + (injectedHook = hook$jscomp$inline_1186); } catch (err) {} } exports._Scheduler = Scheduler; diff --git a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react-test-renderer/cjs/ReactTestRenderer-profiling.js b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react-test-renderer/cjs/ReactTestRenderer-profiling.js index b3d812b4e8..7c618f029c 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react-test-renderer/cjs/ReactTestRenderer-profiling.js +++ b/compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react-test-renderer/cjs/ReactTestRenderer-profiling.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<<8c83f5103a866c5deffb29d90af65b6c>> + * @generated SignedSource<> */ "use strict"; @@ -741,8 +741,63 @@ function invalidateContextProvider(workInProgress, type, didChange) { function is(x, y) { return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y); } -var objectIs = "function" === typeof Object.is ? Object.is : is, - contextStackCursor = createCursor(null), +var objectIs = "function" === typeof Object.is ? Object.is : is; +function describeComponentFrame(name, ownerName) { + var sourceInfo = ""; + ownerName && (sourceInfo = " (created by " + ownerName + ")"); + return "\n in " + (name || "Unknown") + sourceInfo; +} +function describeFunctionComponentFrame(fn) { + return fn + ? describeComponentFrame(fn.displayName || fn.name || null, null) + : ""; +} +function describeFiber(fiber) { + switch (fiber.tag) { + case 26: + case 27: + case 5: + return describeComponentFrame(fiber.type, null); + case 16: + return describeComponentFrame("Lazy", null); + case 13: + return describeComponentFrame("Suspense", null); + case 19: + return describeComponentFrame("SuspenseList", null); + case 0: + case 15: + return describeFunctionComponentFrame(fiber.type); + case 11: + return describeFunctionComponentFrame(fiber.type.render); + case 1: + return (fiber = describeFunctionComponentFrame(fiber.type)), fiber; + default: + return ""; + } +} +function getStackByFiberInDevAndProd(workInProgress) { + try { + var info = ""; + do + (info += describeFiber(workInProgress)), + (workInProgress = workInProgress.return); + while (workInProgress); + return info; + } catch (x) { + return "\nError generating stack: " + x.message + "\n" + x.stack; + } +} +var CapturedStacks = new WeakMap(); +function createCapturedValueAtFiber(value, source) { + if ("object" === typeof value && null !== value) { + var stack = CapturedStacks.get(value); + "string" !== typeof stack && + ((stack = getStackByFiberInDevAndProd(source)), + CapturedStacks.set(value, stack)); + } else stack = getStackByFiberInDevAndProd(source); + return { value: value, source: source, stack: stack }; +} +var contextStackCursor = createCursor(null), contextFiberStackCursor = createCursor(null), rootInstanceStackCursor = createCursor(null), hostTransitionProviderCursor = createCursor(null), @@ -1330,51 +1385,6 @@ function shallowEqual(objA, objB) { } return !0; } -function describeComponentFrame(name, ownerName) { - var sourceInfo = ""; - ownerName && (sourceInfo = " (created by " + ownerName + ")"); - return "\n in " + (name || "Unknown") + sourceInfo; -} -function describeFunctionComponentFrame(fn) { - return fn - ? describeComponentFrame(fn.displayName || fn.name || null, null) - : ""; -} -function describeFiber(fiber) { - switch (fiber.tag) { - case 26: - case 27: - case 5: - return describeComponentFrame(fiber.type, null); - case 16: - return describeComponentFrame("Lazy", null); - case 13: - return describeComponentFrame("Suspense", null); - case 19: - return describeComponentFrame("SuspenseList", null); - case 0: - case 15: - return describeFunctionComponentFrame(fiber.type); - case 11: - return describeFunctionComponentFrame(fiber.type.render); - case 1: - return (fiber = describeFunctionComponentFrame(fiber.type)), fiber; - default: - return ""; - } -} -function getStackByFiberInDevAndProd(workInProgress) { - try { - var info = ""; - do - (info += describeFiber(workInProgress)), - (workInProgress = workInProgress.return); - while (workInProgress); - return info; - } catch (x) { - return "\nError generating stack: " + x.message + "\n" + x.stack; - } -} var SuspenseException = Error( "Suspense Exception: This is not a real error! It's an implementation detail of `use` to interrupt the current render. You must either rethrow it immediately, or move the `use` call outside of the `try/catch` block. Capturing without rethrowing will lead to unexpected behavior.\n\nTo handle async errors, wrap your component in an error boundary, or call the promise's `.catch` method and pass the result to `use`" ), @@ -3700,20 +3710,6 @@ function resolveDefaultProps(Component, baseProps) { } return baseProps; } -var CapturedStacks = new WeakMap(); -function createCapturedValueAtFiber(value, source) { - if ("object" === typeof value && null !== value) { - var stack = CapturedStacks.get(value); - "string" !== typeof stack && - ((stack = getStackByFiberInDevAndProd(source)), - CapturedStacks.set(value, stack)); - } else stack = getStackByFiberInDevAndProd(source); - return { value: value, source: source, stack: stack }; -} -function createCapturedValueFromError(value, stack) { - "string" === typeof stack && CapturedStacks.set(value, stack); - return { value: value, source: null, stack: stack }; -} var reportGlobalError = "function" === typeof reportError ? reportError @@ -3828,32 +3824,31 @@ function throwException( "object" === typeof value && "function" === typeof value.then ) { - var wakeable = value; - value = sourceFiber.tag; + var tag = sourceFiber.tag; 0 !== (sourceFiber.mode & 1) || - (0 !== value && 11 !== value && 15 !== value) || - ((value = sourceFiber.alternate) - ? ((sourceFiber.updateQueue = value.updateQueue), - (sourceFiber.memoizedState = value.memoizedState), - (sourceFiber.lanes = value.lanes)) + (0 !== tag && 11 !== tag && 15 !== tag) || + ((tag = sourceFiber.alternate) + ? ((sourceFiber.updateQueue = tag.updateQueue), + (sourceFiber.memoizedState = tag.memoizedState), + (sourceFiber.lanes = tag.lanes)) : ((sourceFiber.updateQueue = null), (sourceFiber.memoizedState = null))); - value = suspenseHandlerStackCursor.current; - if (null !== value) { - switch (value.tag) { + tag = suspenseHandlerStackCursor.current; + if (null !== tag) { + switch (tag.tag) { case 13: return ( sourceFiber.mode & 1 && (null === shellBoundary ? renderDidSuspendDelayIfPossible() - : null === value.alternate && + : null === tag.alternate && 0 === workInProgressRootExitStatus && (workInProgressRootExitStatus = 3)), - (value.flags &= -257), - 0 === (value.mode & 1) - ? value === returnFiber - ? (value.flags |= 65536) - : ((value.flags |= 128), + (tag.flags &= -257), + 0 === (tag.mode & 1) + ? tag === returnFiber + ? (tag.flags |= 65536) + : ((tag.flags |= 128), (sourceFiber.flags |= 131072), (sourceFiber.flags &= -52805), 1 === sourceFiber.tag @@ -3866,48 +3861,48 @@ function throwException( null === sourceFiber.alternate && (sourceFiber.tag = 28), (sourceFiber.lanes |= 2)) - : ((value.flags |= 65536), (value.lanes = rootRenderLanes)), - wakeable === noopSuspenseyCommitThenable - ? (value.flags |= 16384) - : ((returnFiber = value.updateQueue), + : ((tag.flags |= 65536), (tag.lanes = rootRenderLanes)), + value === noopSuspenseyCommitThenable + ? (tag.flags |= 16384) + : ((returnFiber = tag.updateQueue), null === returnFiber - ? (value.updateQueue = new Set([wakeable])) - : returnFiber.add(wakeable), - value.mode & 1 && - attachPingListener(root, wakeable, rootRenderLanes)), + ? (tag.updateQueue = new Set([value])) + : returnFiber.add(value), + tag.mode & 1 && + attachPingListener(root, value, rootRenderLanes)), !1 ); case 22: - if (value.mode & 1) + if (tag.mode & 1) return ( - (value.flags |= 65536), - wakeable === noopSuspenseyCommitThenable - ? (value.flags |= 16384) - : ((returnFiber = value.updateQueue), + (tag.flags |= 65536), + value === noopSuspenseyCommitThenable + ? (tag.flags |= 16384) + : ((returnFiber = tag.updateQueue), null === returnFiber ? ((returnFiber = { transitions: null, markerInstances: null, - retryQueue: new Set([wakeable]) + retryQueue: new Set([value]) }), - (value.updateQueue = returnFiber)) + (tag.updateQueue = returnFiber)) : ((sourceFiber = returnFiber.retryQueue), null === sourceFiber - ? (returnFiber.retryQueue = new Set([wakeable])) - : sourceFiber.add(wakeable)), - attachPingListener(root, wakeable, rootRenderLanes)), + ? (returnFiber.retryQueue = new Set([value])) + : sourceFiber.add(value)), + attachPingListener(root, value, rootRenderLanes)), !1 ); } throw Error( "Unexpected Suspense handler tag (" + - value.tag + + tag.tag + "). This is a bug in React." ); } if (1 === root.tag) return ( - attachPingListener(root, wakeable, rootRenderLanes), + attachPingListener(root, value, rootRenderLanes), renderDidSuspendDelayIfPossible(), !1 ); @@ -3915,58 +3910,58 @@ function throwException( "A component suspended while responding to synchronous input. This will cause the UI to be replaced with a loading indicator. To fix, updates that suspend should be wrapped with startTransition." ); } - wakeable = value = createCapturedValueAtFiber(value, sourceFiber); - 4 !== workInProgressRootExitStatus && (workInProgressRootExitStatus = 2); + tag = createCapturedValueAtFiber( + Error( + "There was an error during concurrent rendering but React was able to recover by instead synchronously rendering the entire root.", + { cause: value } + ), + sourceFiber + ); null === workInProgressRootConcurrentErrors - ? (workInProgressRootConcurrentErrors = [wakeable]) - : workInProgressRootConcurrentErrors.push(wakeable); + ? (workInProgressRootConcurrentErrors = [tag]) + : workInProgressRootConcurrentErrors.push(tag); + 4 !== workInProgressRootExitStatus && (workInProgressRootExitStatus = 2); if (null === returnFiber) return !0; - wakeable = returnFiber; + value = createCapturedValueAtFiber(value, sourceFiber); do { - switch (wakeable.tag) { + switch (returnFiber.tag) { case 3: return ( - (root = value), - (wakeable.flags |= 65536), - (rootRenderLanes &= -rootRenderLanes), - (wakeable.lanes |= rootRenderLanes), - (root = createRootErrorUpdate( - wakeable.stateNode, - root, - rootRenderLanes - )), - enqueueCapturedUpdate(wakeable, root), + (returnFiber.flags |= 65536), + (root = rootRenderLanes & -rootRenderLanes), + (returnFiber.lanes |= root), + (root = createRootErrorUpdate(returnFiber.stateNode, value, root)), + enqueueCapturedUpdate(returnFiber, root), !1 ); case 1: - returnFiber = value; - sourceFiber = wakeable.type; - var instance = wakeable.stateNode; if ( - 0 === (wakeable.flags & 128) && - ("function" === typeof sourceFiber.getDerivedStateFromError || - (null !== instance && - "function" === typeof instance.componentDidCatch && - (null === legacyErrorBoundariesThatAlreadyFailed || - !legacyErrorBoundariesThatAlreadyFailed.has(instance)))) + ((sourceFiber = returnFiber.type), + (tag = returnFiber.stateNode), + 0 === (returnFiber.flags & 128) && + ("function" === typeof sourceFiber.getDerivedStateFromError || + (null !== tag && + "function" === typeof tag.componentDidCatch && + (null === legacyErrorBoundariesThatAlreadyFailed || + !legacyErrorBoundariesThatAlreadyFailed.has(tag))))) ) return ( - (wakeable.flags |= 65536), + (returnFiber.flags |= 65536), (rootRenderLanes &= -rootRenderLanes), - (wakeable.lanes |= rootRenderLanes), + (returnFiber.lanes |= rootRenderLanes), (rootRenderLanes = createClassErrorUpdate(rootRenderLanes)), initializeClassErrorUpdate( rootRenderLanes, root, - wakeable, - returnFiber + returnFiber, + value ), - enqueueCapturedUpdate(wakeable, rootRenderLanes), + enqueueCapturedUpdate(returnFiber, rootRenderLanes), !1 ); } - wakeable = wakeable.return; - } while (null !== wakeable); + returnFiber = returnFiber.return; + } while (null !== returnFiber); return !1; } var ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner, @@ -4595,17 +4590,10 @@ function updateSuspenseComponent(current, workInProgress, renderLanes) { workInProgress.flags & 256 ? (pushPrimaryTreeSuspenseHandler(workInProgress), (workInProgress.flags &= -257), - (JSCompiler_temp = createCapturedValueFromError( - Error( - "There was an error while hydrating this Suspense boundary. Switched to client rendering." - ), - null - )), (workInProgress = retrySuspenseComponentWithoutHydrating( current, workInProgress, - renderLanes, - JSCompiler_temp + renderLanes ))) : null !== workInProgress.memoizedState ? (reuseSuspenseHandlerOnStack(workInProgress), @@ -4655,12 +4643,14 @@ function updateSuspenseComponent(current, workInProgress, renderLanes) { )), (nextProps.stack = ""), (nextProps.digest = JSCompiler_temp), - (JSCompiler_temp = createCapturedValueFromError(nextProps, null)), + (JSCompiler_temp = { value: nextProps, source: null, stack: null }), + null === hydrationErrors + ? (hydrationErrors = [JSCompiler_temp]) + : hydrationErrors.push(JSCompiler_temp), (workInProgress = retrySuspenseComponentWithoutHydrating( current, workInProgress, - renderLanes, - JSCompiler_temp + renderLanes )); else if ( ((JSCompiler_temp = 0 !== (renderLanes & current.childLanes)), @@ -4724,8 +4714,7 @@ function updateSuspenseComponent(current, workInProgress, renderLanes) { workInProgress = retrySuspenseComponentWithoutHydrating( current, workInProgress, - renderLanes, - null + renderLanes ); } else shim$1() @@ -4872,13 +4861,8 @@ function mountSuspenseFallbackChildren( function retrySuspenseComponentWithoutHydrating( current, workInProgress, - renderLanes, - recoverableError + renderLanes ) { - null !== recoverableError && - (null === hydrationErrors - ? (hydrationErrors = [recoverableError]) - : hydrationErrors.push(recoverableError)); reconcileChildFibers(workInProgress, current.child, null, renderLanes); current = mountSuspensePrimaryChildren( workInProgress, @@ -5759,14 +5743,14 @@ function cutOffTailIfNeeded(renderState, hasRenderedATailFallback) { break; case "collapsed": lastTailNode = renderState.tail; - for (var lastTailNode$72 = null; null !== lastTailNode; ) - null !== lastTailNode.alternate && (lastTailNode$72 = lastTailNode), + for (var lastTailNode$70 = null; null !== lastTailNode; ) + null !== lastTailNode.alternate && (lastTailNode$70 = lastTailNode), (lastTailNode = lastTailNode.sibling); - null === lastTailNode$72 + null === lastTailNode$70 ? hasRenderedATailFallback || null === renderState.tail ? (renderState.tail = null) : (renderState.tail.sibling = null) - : (lastTailNode$72.sibling = null); + : (lastTailNode$70.sibling = null); } } function bubbleProperties(completedWork) { @@ -5778,53 +5762,53 @@ function bubbleProperties(completedWork) { if (didBailout) if (0 !== (completedWork.mode & 2)) { for ( - var treeBaseDuration$74 = completedWork.selfBaseDuration, - child$75 = completedWork.child; - null !== child$75; + var treeBaseDuration$72 = completedWork.selfBaseDuration, + child$73 = completedWork.child; + null !== child$73; ) - (newChildLanes |= child$75.lanes | child$75.childLanes), - (subtreeFlags |= child$75.subtreeFlags & 31457280), - (subtreeFlags |= child$75.flags & 31457280), - (treeBaseDuration$74 += child$75.treeBaseDuration), - (child$75 = child$75.sibling); - completedWork.treeBaseDuration = treeBaseDuration$74; + (newChildLanes |= child$73.lanes | child$73.childLanes), + (subtreeFlags |= child$73.subtreeFlags & 31457280), + (subtreeFlags |= child$73.flags & 31457280), + (treeBaseDuration$72 += child$73.treeBaseDuration), + (child$73 = child$73.sibling); + completedWork.treeBaseDuration = treeBaseDuration$72; } else for ( - treeBaseDuration$74 = completedWork.child; - null !== treeBaseDuration$74; + treeBaseDuration$72 = completedWork.child; + null !== treeBaseDuration$72; ) (newChildLanes |= - treeBaseDuration$74.lanes | treeBaseDuration$74.childLanes), - (subtreeFlags |= treeBaseDuration$74.subtreeFlags & 31457280), - (subtreeFlags |= treeBaseDuration$74.flags & 31457280), - (treeBaseDuration$74.return = completedWork), - (treeBaseDuration$74 = treeBaseDuration$74.sibling); + treeBaseDuration$72.lanes | treeBaseDuration$72.childLanes), + (subtreeFlags |= treeBaseDuration$72.subtreeFlags & 31457280), + (subtreeFlags |= treeBaseDuration$72.flags & 31457280), + (treeBaseDuration$72.return = completedWork), + (treeBaseDuration$72 = treeBaseDuration$72.sibling); else if (0 !== (completedWork.mode & 2)) { - treeBaseDuration$74 = completedWork.actualDuration; - child$75 = completedWork.selfBaseDuration; + treeBaseDuration$72 = completedWork.actualDuration; + child$73 = completedWork.selfBaseDuration; for (var child = completedWork.child; null !== child; ) (newChildLanes |= child.lanes | child.childLanes), (subtreeFlags |= child.subtreeFlags), (subtreeFlags |= child.flags), - (treeBaseDuration$74 += child.actualDuration), - (child$75 += child.treeBaseDuration), + (treeBaseDuration$72 += child.actualDuration), + (child$73 += child.treeBaseDuration), (child = child.sibling); - completedWork.actualDuration = treeBaseDuration$74; - completedWork.treeBaseDuration = child$75; + completedWork.actualDuration = treeBaseDuration$72; + completedWork.treeBaseDuration = child$73; } else for ( - treeBaseDuration$74 = completedWork.child; - null !== treeBaseDuration$74; + treeBaseDuration$72 = completedWork.child; + null !== treeBaseDuration$72; ) (newChildLanes |= - treeBaseDuration$74.lanes | treeBaseDuration$74.childLanes), - (subtreeFlags |= treeBaseDuration$74.subtreeFlags), - (subtreeFlags |= treeBaseDuration$74.flags), - (treeBaseDuration$74.return = completedWork), - (treeBaseDuration$74 = treeBaseDuration$74.sibling); + treeBaseDuration$72.lanes | treeBaseDuration$72.childLanes), + (subtreeFlags |= treeBaseDuration$72.subtreeFlags), + (subtreeFlags |= treeBaseDuration$72.flags), + (treeBaseDuration$72.return = completedWork), + (treeBaseDuration$72 = treeBaseDuration$72.sibling); completedWork.subtreeFlags |= subtreeFlags; completedWork.childLanes = newChildLanes; return didBailout; @@ -5997,11 +5981,11 @@ function completeWork(current, workInProgress, renderLanes) { null !== newProps.alternate.memoizedState && null !== newProps.alternate.memoizedState.cachePool && (index = newProps.alternate.memoizedState.cachePool.pool); - var cache$82 = null; + var cache$80 = null; null !== newProps.memoizedState && null !== newProps.memoizedState.cachePool && - (cache$82 = newProps.memoizedState.cachePool.pool); - cache$82 !== index && (newProps.flags |= 2048); + (cache$80 = newProps.memoizedState.cachePool.pool); + cache$80 !== index && (newProps.flags |= 2048); } renderLanes !== current && renderLanes && @@ -6033,8 +6017,8 @@ function completeWork(current, workInProgress, renderLanes) { index = workInProgress.memoizedState; if (null === index) return bubbleProperties(workInProgress), null; newProps = 0 !== (workInProgress.flags & 128); - cache$82 = index.rendering; - if (null === cache$82) + cache$80 = index.rendering; + if (null === cache$80) if (newProps) cutOffTailIfNeeded(index, !1); else { if ( @@ -6042,11 +6026,11 @@ function completeWork(current, workInProgress, renderLanes) { (null !== current && 0 !== (current.flags & 128)) ) for (current = workInProgress.child; null !== current; ) { - cache$82 = findFirstSuspended(current); - if (null !== cache$82) { + cache$80 = findFirstSuspended(current); + if (null !== cache$80) { workInProgress.flags |= 128; cutOffTailIfNeeded(index, !1); - current = cache$82.updateQueue; + current = cache$80.updateQueue; workInProgress.updateQueue = current; scheduleRetryEffect(workInProgress, current); workInProgress.subtreeFlags = 0; @@ -6071,7 +6055,7 @@ function completeWork(current, workInProgress, renderLanes) { } else { if (!newProps) - if (((current = findFirstSuspended(cache$82)), null !== current)) { + if (((current = findFirstSuspended(cache$80)), null !== current)) { if ( ((workInProgress.flags |= 128), (newProps = !0), @@ -6081,7 +6065,7 @@ function completeWork(current, workInProgress, renderLanes) { cutOffTailIfNeeded(index, !0), null === index.tail && "hidden" === index.tailMode && - !cache$82.alternate) + !cache$80.alternate) ) return bubbleProperties(workInProgress), null; } else @@ -6093,13 +6077,13 @@ function completeWork(current, workInProgress, renderLanes) { cutOffTailIfNeeded(index, !1), (workInProgress.lanes = 4194304)); index.isBackwards - ? ((cache$82.sibling = workInProgress.child), - (workInProgress.child = cache$82)) + ? ((cache$80.sibling = workInProgress.child), + (workInProgress.child = cache$80)) : ((current = index.last), null !== current - ? (current.sibling = cache$82) - : (workInProgress.child = cache$82), - (index.last = cache$82)); + ? (current.sibling = cache$80) + : (workInProgress.child = cache$80), + (index.last = cache$80)); } if (null !== index.tail) return ( @@ -6357,8 +6341,8 @@ function safelyDetachRef(current, nearestMountedAncestor) { recordLayoutEffectDuration(current); } else ref(null); - } catch (error$98) { - captureCommitPhaseError(current, nearestMountedAncestor, error$98); + } catch (error$96) { + captureCommitPhaseError(current, nearestMountedAncestor, error$96); } else ref.current = null; } @@ -6494,10 +6478,10 @@ function commitHookEffectListMount(flags, finishedWork) { injectedProfilingHooks.markComponentLayoutEffectMountStarted( finishedWork ); - var create$99 = effect.create, + var create$97 = effect.create, inst = effect.inst; - create$99 = create$99(); - inst.destroy = create$99; + create$97 = create$97(); + inst.destroy = create$97; 0 !== (flags & 8) ? null !== injectedProfilingHooks && "function" === @@ -6525,8 +6509,8 @@ function commitHookLayoutEffects(finishedWork, hookFlags) { } else try { commitHookEffectListMount(hookFlags, finishedWork); - } catch (error$101) { - captureCommitPhaseError(finishedWork, finishedWork.return, error$101); + } catch (error$99) { + captureCommitPhaseError(finishedWork, finishedWork.return, error$99); } } function commitClassCallbacks(finishedWork) { @@ -6606,11 +6590,11 @@ function commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) { } else try { finishedRoot.componentDidMount(); - } catch (error$102) { + } catch (error$100) { captureCommitPhaseError( finishedWork, finishedWork.return, - error$102 + error$100 ); } else { @@ -6628,11 +6612,11 @@ function commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) { current, finishedRoot.__reactInternalSnapshotBeforeUpdate ); - } catch (error$103) { + } catch (error$101) { captureCommitPhaseError( finishedWork, finishedWork.return, - error$103 + error$101 ); } recordLayoutEffectDuration(finishedWork); @@ -6643,11 +6627,11 @@ function commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) { current, finishedRoot.__reactInternalSnapshotBeforeUpdate ); - } catch (error$104) { + } catch (error$102) { captureCommitPhaseError( finishedWork, finishedWork.return, - error$104 + error$102 ); } } @@ -7036,22 +7020,22 @@ function commitMutationEffectsOnFiber(finishedWork, root) { try { startLayoutEffectTimer(), commitHookEffectListUnmount(5, finishedWork, finishedWork.return); - } catch (error$113) { + } catch (error$111) { captureCommitPhaseError( finishedWork, finishedWork.return, - error$113 + error$111 ); } recordLayoutEffectDuration(finishedWork); } else try { commitHookEffectListUnmount(5, finishedWork, finishedWork.return); - } catch (error$114) { + } catch (error$112) { captureCommitPhaseError( finishedWork, finishedWork.return, - error$114 + error$112 ); } } @@ -7090,8 +7074,8 @@ function commitMutationEffectsOnFiber(finishedWork, root) { finishedWork.updateQueue = null; try { (flags.type = type), (flags.props = existingHiddenCallbacks); - } catch (error$117) { - captureCommitPhaseError(finishedWork, finishedWork.return, error$117); + } catch (error$115) { + captureCommitPhaseError(finishedWork, finishedWork.return, error$115); } } break; @@ -7107,8 +7091,8 @@ function commitMutationEffectsOnFiber(finishedWork, root) { existingHiddenCallbacks = finishedWork.memoizedProps; try { flags.text = existingHiddenCallbacks; - } catch (error$118) { - captureCommitPhaseError(finishedWork, finishedWork.return, error$118); + } catch (error$116) { + captureCommitPhaseError(finishedWork, finishedWork.return, error$116); } } break; @@ -7194,11 +7178,11 @@ function commitMutationEffectsOnFiber(finishedWork, root) { wasHidden.stateNode.isHidden = existingHiddenCallbacks ? !0 : !1; - } catch (error$107) { + } catch (error$105) { captureCommitPhaseError( finishedWork, finishedWork.return, - error$107 + error$105 ); } } else if ( @@ -7276,12 +7260,12 @@ function commitReconciliationEffects(finishedWork) { break; case 3: case 4: - var parent$108 = JSCompiler_inline_result.stateNode.containerInfo, - before$109 = getHostSibling(finishedWork); + var parent$106 = JSCompiler_inline_result.stateNode.containerInfo, + before$107 = getHostSibling(finishedWork); insertOrAppendPlacementNodeIntoContainer( finishedWork, - before$109, - parent$108 + before$107, + parent$106 ); break; default: @@ -7461,8 +7445,8 @@ function commitHookPassiveMountEffects(finishedWork, hookFlags) { } else try { commitHookEffectListMount(hookFlags, finishedWork); - } catch (error$122) { - captureCommitPhaseError(finishedWork, finishedWork.return, error$122); + } catch (error$120) { + captureCommitPhaseError(finishedWork, finishedWork.return, error$120); } } function commitOffscreenPassiveMountEffects(current, finishedWork) { @@ -8483,8 +8467,8 @@ function renderRootSync(root, lanes) { } workLoopSync(); break; - } catch (thrownValue$127) { - handleThrow(root, thrownValue$127); + } catch (thrownValue$125) { + handleThrow(root, thrownValue$125); } while (1); lanes && root.shellSuspendCounter++; @@ -8594,8 +8578,8 @@ function renderRootConcurrent(root, lanes) { } workLoopConcurrent(); break; - } catch (thrownValue$129) { - handleThrow(root, thrownValue$129); + } catch (thrownValue$127) { + handleThrow(root, thrownValue$127); } while (1); resetContextDependencies(); @@ -8959,16 +8943,11 @@ function flushPassiveEffects() { _finishedWork$memoize = finishedWork.memoizedProps, id = _finishedWork$memoize.id, onPostCommit = _finishedWork$memoize.onPostCommit, - commitTime$100 = commitTime, + commitTime$98 = commitTime, phase = null === finishedWork.alternate ? "mount" : "update"; currentUpdateIsNested && (phase = "nested-update"); "function" === typeof onPostCommit && - onPostCommit( - id, - phase, - passiveEffectDuration, - commitTime$100 - ); + onPostCommit(id, phase, passiveEffectDuration, commitTime$98); var parentFiber = finishedWork.return; b: for (; null !== parentFiber; ) { switch (parentFiber.tag) { @@ -9842,12 +9821,12 @@ function wrapFiber(fiber) { fiberToWrapper.set(fiber, wrapper)); return wrapper; } -var devToolsConfig$jscomp$inline_1083 = { +var devToolsConfig$jscomp$inline_1079 = { findFiberByHostInstance: function () { throw Error("TestRenderer does not support findFiberByHostInstance()"); }, bundleType: 0, - version: "19.0.0-canary-e9626af6", + version: "19.0.0-canary-2ec9dab1", rendererPackageName: "react-test-renderer" }; (function (internals) { @@ -9864,10 +9843,10 @@ var devToolsConfig$jscomp$inline_1083 = { } catch (err) {} return hook.checkDCE ? !0 : !1; })({ - bundleType: devToolsConfig$jscomp$inline_1083.bundleType, - version: devToolsConfig$jscomp$inline_1083.version, - rendererPackageName: devToolsConfig$jscomp$inline_1083.rendererPackageName, - rendererConfig: devToolsConfig$jscomp$inline_1083.rendererConfig, + bundleType: devToolsConfig$jscomp$inline_1079.bundleType, + version: devToolsConfig$jscomp$inline_1079.version, + rendererPackageName: devToolsConfig$jscomp$inline_1079.rendererPackageName, + rendererConfig: devToolsConfig$jscomp$inline_1079.rendererConfig, overrideHookState: null, overrideHookStateDeletePath: null, overrideHookStateRenamePath: null, @@ -9884,14 +9863,14 @@ var devToolsConfig$jscomp$inline_1083 = { return null === fiber ? null : fiber.stateNode; }, findFiberByHostInstance: - devToolsConfig$jscomp$inline_1083.findFiberByHostInstance || + devToolsConfig$jscomp$inline_1079.findFiberByHostInstance || emptyFindFiberByHostInstance, findHostInstancesForRefresh: null, scheduleRefresh: null, scheduleRoot: null, setRefreshHandler: null, getCurrentFiber: null, - reconcilerVersion: "19.0.0-canary-e9626af6" + reconcilerVersion: "19.0.0-canary-2ec9dab1" }); exports._Scheduler = Scheduler; exports.act = act; diff --git a/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/REVISION b/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/REVISION index fcab488183..d223277239 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/REVISION +++ b/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/REVISION @@ -1 +1 @@ -20e710aeab3e03809c82d134171986ea270026a0 +6090cab099a8f7f373e04c7eb2937425a8f80f80 diff --git a/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactFabric-dev.fb.js b/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactFabric-dev.fb.js index 391c0fb394..63185d618f 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +++ b/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactFabric-dev.fb.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<> + * @generated SignedSource<<88159e2db4c5fbe465a64ac478e2f759>> */ "use strict"; @@ -6024,6 +6024,430 @@ to return true:wantsResponderID| | var objectIs = typeof Object.is === "function" ? Object.is : is; // $FlowFixMe[method-unbinding] + var ReactCurrentDispatcher$2 = ReactSharedInternals.ReactCurrentDispatcher; + var prefix; + function describeBuiltInComponentFrame(name, ownerFn) { + if (enableComponentStackLocations) { + if (prefix === undefined) { + // Extract the VM specific prefix used by each line. + try { + throw Error(); + } catch (x) { + var match = x.stack.trim().match(/\n( *(at )?)/); + prefix = (match && match[1]) || ""; + } + } // We use the prefix to ensure our stacks line up with native stack frames. + + return "\n" + prefix + name; + } else { + var ownerName = null; + + if (ownerFn) { + ownerName = ownerFn.displayName || ownerFn.name || null; + } + + return describeComponentFrame(name, ownerName); + } + } + function describeDebugInfoFrame(name, env) { + return describeBuiltInComponentFrame( + name + (env ? " (" + env + ")" : ""), + null + ); + } + var reentry = false; + var componentFrameCache; + + { + var PossiblyWeakMap$1 = typeof WeakMap === "function" ? WeakMap : Map; + componentFrameCache = new PossiblyWeakMap$1(); + } + /** + * Leverages native browser/VM stack frames to get proper details (e.g. + * filename, line + col number) for a single component in a component stack. We + * do this by: + * (1) throwing and catching an error in the function - this will be our + * control error. + * (2) calling the component which will eventually throw an error that we'll + * catch - this will be our sample error. + * (3) diffing the control and sample error stacks to find the stack frame + * which represents our component. + */ + + function describeNativeComponentFrame(fn, construct) { + // If something asked for a stack inside a fake render, it should get ignored. + if (!fn || reentry) { + return ""; + } + + { + var frame = componentFrameCache.get(fn); + + if (frame !== undefined) { + return frame; + } + } + + reentry = true; + var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe[incompatible-type] It does accept undefined. + + Error.prepareStackTrace = undefined; + var previousDispatcher; + + { + previousDispatcher = ReactCurrentDispatcher$2.current; // Set the dispatcher in DEV because this might be call in the render function + // for warnings. + + ReactCurrentDispatcher$2.current = null; + disableLogs(); + } + /** + * Finding a common stack frame between sample and control errors can be + * tricky given the different types and levels of stack trace truncation from + * different JS VMs. So instead we'll attempt to control what that common + * frame should be through this object method: + * Having both the sample and control errors be in the function under the + * `DescribeNativeComponentFrameRoot` property, + setting the `name` and + * `displayName` properties of the function ensures that a stack + * frame exists that has the method name `DescribeNativeComponentFrameRoot` in + * it for both control and sample stacks. + */ + + var RunInRootFrame = { + DetermineComponentFrameRoot: function () { + var control; + + try { + // This should throw. + if (construct) { + // Something should be setting the props in the constructor. + var Fake = function () { + throw Error(); + }; // $FlowFixMe[prop-missing] + + Object.defineProperty(Fake.prototype, "props", { + set: function () { + // We use a throwing setter instead of frozen or non-writable props + // because that won't throw in a non-strict mode function. + throw Error(); + } + }); + + if (typeof Reflect === "object" && Reflect.construct) { + // We construct a different control for this case to include any extra + // frames added by the construct call. + try { + Reflect.construct(Fake, []); + } catch (x) { + control = x; + } + + Reflect.construct(fn, [], Fake); + } else { + try { + Fake.call(); + } catch (x) { + control = x; + } // $FlowFixMe[prop-missing] found when upgrading Flow + + fn.call(Fake.prototype); + } + } else { + try { + throw Error(); + } catch (x) { + control = x; + } // TODO(luna): This will currently only throw if the function component + // tries to access React/ReactDOM/props. We should probably make this throw + // in simple components too + + var maybePromise = fn(); // If the function component returns a promise, it's likely an async + // component, which we don't yet support. Attach a noop catch handler to + // silence the error. + // TODO: Implement component stacks for async client components? + + if (maybePromise && typeof maybePromise.catch === "function") { + maybePromise.catch(function () {}); + } + } + } catch (sample) { + // This is inlined manually because closure doesn't do it for us. + if (sample && control && typeof sample.stack === "string") { + return [sample.stack, control.stack]; + } + } + + return [null, null]; + } + }; // $FlowFixMe[prop-missing] + + RunInRootFrame.DetermineComponentFrameRoot.displayName = + "DetermineComponentFrameRoot"; + var namePropDescriptor = Object.getOwnPropertyDescriptor( + RunInRootFrame.DetermineComponentFrameRoot, + "name" + ); // Before ES6, the `name` property was not configurable. + + if (namePropDescriptor && namePropDescriptor.configurable) { + // V8 utilizes a function's `name` property when generating a stack trace. + Object.defineProperty( + RunInRootFrame.DetermineComponentFrameRoot, // Configurable properties can be updated even if its writable descriptor + // is set to `false`. + // $FlowFixMe[cannot-write] + "name", + { + value: "DetermineComponentFrameRoot" + } + ); + } + + try { + var _RunInRootFrame$Deter = + RunInRootFrame.DetermineComponentFrameRoot(), + sampleStack = _RunInRootFrame$Deter[0], + controlStack = _RunInRootFrame$Deter[1]; + + if (sampleStack && controlStack) { + // This extracts the first frame from the sample that isn't also in the control. + // Skipping one frame that we assume is the frame that calls the two. + var sampleLines = sampleStack.split("\n"); + var controlLines = controlStack.split("\n"); + var s = 0; + var c = 0; + + while ( + s < sampleLines.length && + !sampleLines[s].includes("DetermineComponentFrameRoot") + ) { + s++; + } + + while ( + c < controlLines.length && + !controlLines[c].includes("DetermineComponentFrameRoot") + ) { + c++; + } // We couldn't find our intentionally injected common root frame, attempt + // to find another common root frame by search from the bottom of the + // control stack... + + if (s === sampleLines.length || c === controlLines.length) { + s = sampleLines.length - 1; + c = controlLines.length - 1; + + while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) { + // We expect at least one stack frame to be shared. + // Typically this will be the root most one. However, stack frames may be + // cut off due to maximum stack limits. In this case, one maybe cut off + // earlier than the other. We assume that the sample is longer or the same + // and there for cut off earlier. So we should find the root most frame in + // the sample somewhere in the control. + c--; + } + } + + for (; s >= 1 && c >= 0; s--, c--) { + // Next we find the first one that isn't the same which should be the + // frame that called our sample function and the control. + if (sampleLines[s] !== controlLines[c]) { + // In V8, the first line is describing the message but other VMs don't. + // If we're about to return the first line, and the control is also on the same + // line, that's a pretty good indicator that our sample threw at same line as + // the control. I.e. before we entered the sample frame. So we ignore this result. + // This can happen if you passed a class to function component, or non-function. + if (s !== 1 || c !== 1) { + do { + s--; + c--; // We may still have similar intermediate frames from the construct call. + // The next one that isn't the same should be our match though. + + if (c < 0 || sampleLines[s] !== controlLines[c]) { + // V8 adds a "new" prefix for native classes. Let's remove it to make it prettier. + var _frame = + "\n" + sampleLines[s].replace(" at new ", " at "); // If our component frame is labeled "" + // but we have a user-provided "displayName" + // splice it in to make the stack more readable. + + if (fn.displayName && _frame.includes("")) { + _frame = _frame.replace("", fn.displayName); + } + + if (true) { + if (typeof fn === "function") { + componentFrameCache.set(fn, _frame); + } + } // Return the line we found. + + return _frame; + } + } while (s >= 1 && c >= 0); + } + + break; + } + } + } + } finally { + reentry = false; + + { + ReactCurrentDispatcher$2.current = previousDispatcher; + reenableLogs(); + } + + Error.prepareStackTrace = previousPrepareStackTrace; + } // Fallback to just using the name if we couldn't make it throw. + + var name = fn ? fn.displayName || fn.name : ""; + var syntheticFrame = name ? describeBuiltInComponentFrame(name) : ""; + + { + if (typeof fn === "function") { + componentFrameCache.set(fn, syntheticFrame); + } + } + + return syntheticFrame; + } + + function describeComponentFrame(name, ownerName) { + var sourceInfo = ""; + + if (ownerName) { + sourceInfo = " (created by " + ownerName + ")"; + } + + return "\n in " + (name || "Unknown") + sourceInfo; + } + + function describeClassComponentFrame(ctor, ownerFn) { + if (enableComponentStackLocations) { + return describeNativeComponentFrame(ctor, true); + } else { + return describeFunctionComponentFrame(ctor, ownerFn); + } + } + function describeFunctionComponentFrame(fn, ownerFn) { + if (enableComponentStackLocations) { + return describeNativeComponentFrame(fn, false); + } else { + if (!fn) { + return ""; + } + + var name = fn.displayName || fn.name || null; + var ownerName = null; + + if (ownerFn) { + ownerName = ownerFn.displayName || ownerFn.name || null; + } + + return describeComponentFrame(name, ownerName); + } + } + + function describeFiber(fiber) { + var owner = fiber._debugOwner ? fiber._debugOwner.type : null; + + switch (fiber.tag) { + case HostHoistable: + case HostSingleton: + case HostComponent: + return describeBuiltInComponentFrame(fiber.type, owner); + + case LazyComponent: + return describeBuiltInComponentFrame("Lazy", owner); + + case SuspenseComponent: + return describeBuiltInComponentFrame("Suspense", owner); + + case SuspenseListComponent: + return describeBuiltInComponentFrame("SuspenseList", owner); + + case FunctionComponent: + case SimpleMemoComponent: + return describeFunctionComponentFrame(fiber.type, owner); + + case ForwardRef: + return describeFunctionComponentFrame(fiber.type.render, owner); + + case ClassComponent: + return describeClassComponentFrame(fiber.type, owner); + + default: + return ""; + } + } + + function getStackByFiberInDevAndProd(workInProgress) { + try { + var info = ""; + var node = workInProgress; + + do { + info += describeFiber(node); + + if (true) { + // Add any Server Component stack frames in reverse order. + var debugInfo = node._debugInfo; + + if (debugInfo) { + for (var i = debugInfo.length - 1; i >= 0; i--) { + var entry = debugInfo[i]; + + if (typeof entry.name === "string") { + info += describeDebugInfoFrame(entry.name, entry.env); + } + } + } + } // $FlowFixMe[incompatible-type] we bail out when we get a null + + node = node.return; + } while (node); + + return info; + } catch (x) { + return "\nError generating stack: " + x.message + "\n" + x.stack; + } + } + + var CapturedStacks = new WeakMap(); + function createCapturedValueAtFiber(value, source) { + // If the value is an error, call this function immediately after it is thrown + // so the stack is accurate. + var stack; + + if (typeof value === "object" && value !== null) { + var capturedStack = CapturedStacks.get(value); + + if (typeof capturedStack === "string") { + stack = capturedStack; + } else { + stack = getStackByFiberInDevAndProd(source); + CapturedStacks.set(value, stack); + } + } else { + stack = getStackByFiberInDevAndProd(source); + } + + return { + value: value, + source: source, + stack: stack + }; + } + function createCapturedValueFromError(value, stack) { + if (typeof stack === "string") { + CapturedStacks.set(value, stack); + } + + return { + value: value, + source: null, + stack: stack + }; + } + var contextStackCursor = createCursor(null); var contextFiberStackCursor = createCursor(null); var rootInstanceStackCursor = createCursor(null); // Represents the nearest host transition provider (in React DOM, a ) @@ -8272,393 +8696,6 @@ to return true:wantsResponderID| | return true; } - var ReactCurrentDispatcher$2 = ReactSharedInternals.ReactCurrentDispatcher; - var prefix; - function describeBuiltInComponentFrame(name, ownerFn) { - if (enableComponentStackLocations) { - if (prefix === undefined) { - // Extract the VM specific prefix used by each line. - try { - throw Error(); - } catch (x) { - var match = x.stack.trim().match(/\n( *(at )?)/); - prefix = (match && match[1]) || ""; - } - } // We use the prefix to ensure our stacks line up with native stack frames. - - return "\n" + prefix + name; - } else { - var ownerName = null; - - if (ownerFn) { - ownerName = ownerFn.displayName || ownerFn.name || null; - } - - return describeComponentFrame(name, ownerName); - } - } - function describeDebugInfoFrame(name, env) { - return describeBuiltInComponentFrame( - name + (env ? " (" + env + ")" : ""), - null - ); - } - var reentry = false; - var componentFrameCache; - - { - var PossiblyWeakMap$1 = typeof WeakMap === "function" ? WeakMap : Map; - componentFrameCache = new PossiblyWeakMap$1(); - } - /** - * Leverages native browser/VM stack frames to get proper details (e.g. - * filename, line + col number) for a single component in a component stack. We - * do this by: - * (1) throwing and catching an error in the function - this will be our - * control error. - * (2) calling the component which will eventually throw an error that we'll - * catch - this will be our sample error. - * (3) diffing the control and sample error stacks to find the stack frame - * which represents our component. - */ - - function describeNativeComponentFrame(fn, construct) { - // If something asked for a stack inside a fake render, it should get ignored. - if (!fn || reentry) { - return ""; - } - - { - var frame = componentFrameCache.get(fn); - - if (frame !== undefined) { - return frame; - } - } - - reentry = true; - var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe[incompatible-type] It does accept undefined. - - Error.prepareStackTrace = undefined; - var previousDispatcher; - - { - previousDispatcher = ReactCurrentDispatcher$2.current; // Set the dispatcher in DEV because this might be call in the render function - // for warnings. - - ReactCurrentDispatcher$2.current = null; - disableLogs(); - } - /** - * Finding a common stack frame between sample and control errors can be - * tricky given the different types and levels of stack trace truncation from - * different JS VMs. So instead we'll attempt to control what that common - * frame should be through this object method: - * Having both the sample and control errors be in the function under the - * `DescribeNativeComponentFrameRoot` property, + setting the `name` and - * `displayName` properties of the function ensures that a stack - * frame exists that has the method name `DescribeNativeComponentFrameRoot` in - * it for both control and sample stacks. - */ - - var RunInRootFrame = { - DetermineComponentFrameRoot: function () { - var control; - - try { - // This should throw. - if (construct) { - // Something should be setting the props in the constructor. - var Fake = function () { - throw Error(); - }; // $FlowFixMe[prop-missing] - - Object.defineProperty(Fake.prototype, "props", { - set: function () { - // We use a throwing setter instead of frozen or non-writable props - // because that won't throw in a non-strict mode function. - throw Error(); - } - }); - - if (typeof Reflect === "object" && Reflect.construct) { - // We construct a different control for this case to include any extra - // frames added by the construct call. - try { - Reflect.construct(Fake, []); - } catch (x) { - control = x; - } - - Reflect.construct(fn, [], Fake); - } else { - try { - Fake.call(); - } catch (x) { - control = x; - } // $FlowFixMe[prop-missing] found when upgrading Flow - - fn.call(Fake.prototype); - } - } else { - try { - throw Error(); - } catch (x) { - control = x; - } // TODO(luna): This will currently only throw if the function component - // tries to access React/ReactDOM/props. We should probably make this throw - // in simple components too - - var maybePromise = fn(); // If the function component returns a promise, it's likely an async - // component, which we don't yet support. Attach a noop catch handler to - // silence the error. - // TODO: Implement component stacks for async client components? - - if (maybePromise && typeof maybePromise.catch === "function") { - maybePromise.catch(function () {}); - } - } - } catch (sample) { - // This is inlined manually because closure doesn't do it for us. - if (sample && control && typeof sample.stack === "string") { - return [sample.stack, control.stack]; - } - } - - return [null, null]; - } - }; // $FlowFixMe[prop-missing] - - RunInRootFrame.DetermineComponentFrameRoot.displayName = - "DetermineComponentFrameRoot"; - var namePropDescriptor = Object.getOwnPropertyDescriptor( - RunInRootFrame.DetermineComponentFrameRoot, - "name" - ); // Before ES6, the `name` property was not configurable. - - if (namePropDescriptor && namePropDescriptor.configurable) { - // V8 utilizes a function's `name` property when generating a stack trace. - Object.defineProperty( - RunInRootFrame.DetermineComponentFrameRoot, // Configurable properties can be updated even if its writable descriptor - // is set to `false`. - // $FlowFixMe[cannot-write] - "name", - { - value: "DetermineComponentFrameRoot" - } - ); - } - - try { - var _RunInRootFrame$Deter = - RunInRootFrame.DetermineComponentFrameRoot(), - sampleStack = _RunInRootFrame$Deter[0], - controlStack = _RunInRootFrame$Deter[1]; - - if (sampleStack && controlStack) { - // This extracts the first frame from the sample that isn't also in the control. - // Skipping one frame that we assume is the frame that calls the two. - var sampleLines = sampleStack.split("\n"); - var controlLines = controlStack.split("\n"); - var s = 0; - var c = 0; - - while ( - s < sampleLines.length && - !sampleLines[s].includes("DetermineComponentFrameRoot") - ) { - s++; - } - - while ( - c < controlLines.length && - !controlLines[c].includes("DetermineComponentFrameRoot") - ) { - c++; - } // We couldn't find our intentionally injected common root frame, attempt - // to find another common root frame by search from the bottom of the - // control stack... - - if (s === sampleLines.length || c === controlLines.length) { - s = sampleLines.length - 1; - c = controlLines.length - 1; - - while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) { - // We expect at least one stack frame to be shared. - // Typically this will be the root most one. However, stack frames may be - // cut off due to maximum stack limits. In this case, one maybe cut off - // earlier than the other. We assume that the sample is longer or the same - // and there for cut off earlier. So we should find the root most frame in - // the sample somewhere in the control. - c--; - } - } - - for (; s >= 1 && c >= 0; s--, c--) { - // Next we find the first one that isn't the same which should be the - // frame that called our sample function and the control. - if (sampleLines[s] !== controlLines[c]) { - // In V8, the first line is describing the message but other VMs don't. - // If we're about to return the first line, and the control is also on the same - // line, that's a pretty good indicator that our sample threw at same line as - // the control. I.e. before we entered the sample frame. So we ignore this result. - // This can happen if you passed a class to function component, or non-function. - if (s !== 1 || c !== 1) { - do { - s--; - c--; // We may still have similar intermediate frames from the construct call. - // The next one that isn't the same should be our match though. - - if (c < 0 || sampleLines[s] !== controlLines[c]) { - // V8 adds a "new" prefix for native classes. Let's remove it to make it prettier. - var _frame = - "\n" + sampleLines[s].replace(" at new ", " at "); // If our component frame is labeled "" - // but we have a user-provided "displayName" - // splice it in to make the stack more readable. - - if (fn.displayName && _frame.includes("")) { - _frame = _frame.replace("", fn.displayName); - } - - if (true) { - if (typeof fn === "function") { - componentFrameCache.set(fn, _frame); - } - } // Return the line we found. - - return _frame; - } - } while (s >= 1 && c >= 0); - } - - break; - } - } - } - } finally { - reentry = false; - - { - ReactCurrentDispatcher$2.current = previousDispatcher; - reenableLogs(); - } - - Error.prepareStackTrace = previousPrepareStackTrace; - } // Fallback to just using the name if we couldn't make it throw. - - var name = fn ? fn.displayName || fn.name : ""; - var syntheticFrame = name ? describeBuiltInComponentFrame(name) : ""; - - { - if (typeof fn === "function") { - componentFrameCache.set(fn, syntheticFrame); - } - } - - return syntheticFrame; - } - - function describeComponentFrame(name, ownerName) { - var sourceInfo = ""; - - if (ownerName) { - sourceInfo = " (created by " + ownerName + ")"; - } - - return "\n in " + (name || "Unknown") + sourceInfo; - } - - function describeClassComponentFrame(ctor, ownerFn) { - if (enableComponentStackLocations) { - return describeNativeComponentFrame(ctor, true); - } else { - return describeFunctionComponentFrame(ctor, ownerFn); - } - } - function describeFunctionComponentFrame(fn, ownerFn) { - if (enableComponentStackLocations) { - return describeNativeComponentFrame(fn, false); - } else { - if (!fn) { - return ""; - } - - var name = fn.displayName || fn.name || null; - var ownerName = null; - - if (ownerFn) { - ownerName = ownerFn.displayName || ownerFn.name || null; - } - - return describeComponentFrame(name, ownerName); - } - } - - function describeFiber(fiber) { - var owner = fiber._debugOwner ? fiber._debugOwner.type : null; - - switch (fiber.tag) { - case HostHoistable: - case HostSingleton: - case HostComponent: - return describeBuiltInComponentFrame(fiber.type, owner); - - case LazyComponent: - return describeBuiltInComponentFrame("Lazy", owner); - - case SuspenseComponent: - return describeBuiltInComponentFrame("Suspense", owner); - - case SuspenseListComponent: - return describeBuiltInComponentFrame("SuspenseList", owner); - - case FunctionComponent: - case SimpleMemoComponent: - return describeFunctionComponentFrame(fiber.type, owner); - - case ForwardRef: - return describeFunctionComponentFrame(fiber.type.render, owner); - - case ClassComponent: - return describeClassComponentFrame(fiber.type, owner); - - default: - return ""; - } - } - - function getStackByFiberInDevAndProd(workInProgress) { - try { - var info = ""; - var node = workInProgress; - - do { - info += describeFiber(node); - - if (true) { - // Add any Server Component stack frames in reverse order. - var debugInfo = node._debugInfo; - - if (debugInfo) { - for (var i = debugInfo.length - 1; i >= 0; i--) { - var entry = debugInfo[i]; - - if (typeof entry.name === "string") { - info += describeDebugInfoFrame(entry.name, entry.env); - } - } - } - } // $FlowFixMe[incompatible-type] we bail out when we get a null - - node = node.return; - } while (node); - - return info; - } catch (x) { - return "\nError generating stack: " + x.message + "\n" + x.stack; - } - } - var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame; var current = null; var isRendering = false; @@ -16767,43 +16804,6 @@ to return true:wantsResponderID| | return baseProps; } - var CapturedStacks = new WeakMap(); - function createCapturedValueAtFiber(value, source) { - // If the value is an error, call this function immediately after it is thrown - // so the stack is accurate. - var stack; - - if (typeof value === "object" && value !== null) { - var capturedStack = CapturedStacks.get(value); - - if (typeof capturedStack === "string") { - stack = capturedStack; - } else { - stack = getStackByFiberInDevAndProd(source); - CapturedStacks.set(value, stack); - } - } else { - stack = getStackByFiberInDevAndProd(source); - } - - return { - value: value, - source: source, - stack: stack - }; - } - function createCapturedValueFromError(value, stack) { - if (typeof stack === "string") { - CapturedStacks.set(value, stack); - } - - return { - value: value, - source: null, - stack: stack - }; - } - var reportGlobalError = typeof reportError === "function" // In modern browsers, reportError will dispatch an error event, ? // emulating an uncaught JavaScript error. @@ -17373,8 +17373,17 @@ to return true:wantsResponderID| | } } // This is a regular error, not a Suspense wakeable. - value = createCapturedValueAtFiber(value, sourceFiber); - renderDidError(value); // We didn't find a boundary that could handle this type of exception. Start + var wrapperError = new Error( + "There was an error during concurrent rendering but React was able to recover by " + + "instead synchronously rendering the entire root.", + { + cause: value + } + ); + queueConcurrentError( + createCapturedValueAtFiber(wrapperError, sourceFiber) + ); + renderDidError(); // We didn't find a boundary that could handle this type of exception. Start // over and traverse parent path again, this time treating the exception // as an error. @@ -17384,26 +17393,30 @@ to return true:wantsResponderID| | return true; } + var errorInfo = createCapturedValueAtFiber(value, sourceFiber); var workInProgress = returnFiber; do { switch (workInProgress.tag) { case HostRoot: { - var _errorInfo = value; workInProgress.flags |= ShouldCapture; - var lane = pickArbitraryLane(rootRenderLanes); - workInProgress.lanes = mergeLanes(workInProgress.lanes, lane); - var update = createRootErrorUpdate( + + var _lane = pickArbitraryLane(rootRenderLanes); + + workInProgress.lanes = mergeLanes(workInProgress.lanes, _lane); + + var _update = createRootErrorUpdate( workInProgress.stateNode, - _errorInfo, - lane + errorInfo, + _lane ); - enqueueCapturedUpdate(workInProgress, update); + + enqueueCapturedUpdate(workInProgress, _update); return false; } case ClassComponent: - var errorInfo = value; + // Capture and retry var ctor = workInProgress.type; var instance = workInProgress.stateNode; @@ -17416,19 +17429,19 @@ to return true:wantsResponderID| | ) { workInProgress.flags |= ShouldCapture; - var _lane = pickArbitraryLane(rootRenderLanes); + var _lane2 = pickArbitraryLane(rootRenderLanes); - workInProgress.lanes = mergeLanes(workInProgress.lanes, _lane); // Schedule the error boundary to re-render using updated state + workInProgress.lanes = mergeLanes(workInProgress.lanes, _lane2); // Schedule the error boundary to re-render using updated state - var _update = createClassErrorUpdate(_lane); + var _update2 = createClassErrorUpdate(_lane2); initializeClassErrorUpdate( - _update, + _update2, root, workInProgress, errorInfo ); - enqueueCapturedUpdate(workInProgress, _update); + enqueueCapturedUpdate(workInProgress, _update2); return false; } @@ -19301,20 +19314,12 @@ to return true:wantsResponderID| | function retrySuspenseComponentWithoutHydrating( current, workInProgress, - renderLanes, - recoverableError + renderLanes ) { // Falling back to client rendering. Because this has performance // implications, it's considered a recoverable error, even though the user // likely won't observe anything wrong with the UI. - // - // The error is passed in as an argument to enforce that every caller provide - // a custom message, or explicitly opt out (currently the only path that opts - // out is legacy mode; every concurrent path provides an error). - if (recoverableError !== null) { - queueHydrationError(recoverableError); - } // This will add the old fiber to the deletion list - + // This will add the old fiber to the deletion list reconcileChildFibers(workInProgress, current.child, null, renderLanes); // We're now not suspended nor dehydrated. var nextProps = workInProgress.pendingProps; @@ -19400,9 +19405,7 @@ to return true:wantsResponderID| | message = _getSuspenseInstanceF.message; stack = _getSuspenseInstanceF.stack; componentStack = _getSuspenseInstanceF.componentStack; - } - - var capturedValue = null; // TODO: Figure out a better signal than encoding a magic digest value. + } // TODO: Figure out a better signal than encoding a magic digest value. { var error; @@ -19420,17 +19423,17 @@ to return true:wantsResponderID| | error.stack = stack || ""; error.digest = digest; - capturedValue = createCapturedValueFromError( + var capturedValue = createCapturedValueFromError( error, componentStack === undefined ? null : componentStack ); + queueHydrationError(capturedValue); } return retrySuspenseComponentWithoutHydrating( current, workInProgress, - renderLanes, - capturedValue + renderLanes ); } // any context has changed, we need to treat is as if the input might have changed. @@ -19490,8 +19493,7 @@ to return true:wantsResponderID| | return retrySuspenseComponentWithoutHydrating( current, workInProgress, - renderLanes, - null + renderLanes ); } else if (isSuspenseInstancePending()) { // This component is still pending more data from the server, so we can't hydrate its @@ -19530,22 +19532,13 @@ to return true:wantsResponderID| | // something either suspended or errored. if (workInProgress.flags & ForceClientRender) { // Something errored during hydration. Try again without hydrating. + // The error should've already been logged in throwException. pushPrimaryTreeSuspenseHandler(workInProgress); workInProgress.flags &= ~ForceClientRender; - - var _capturedValue = createCapturedValueFromError( - new Error( - "There was an error while hydrating this Suspense boundary. " + - "Switched to client rendering." - ), - null - ); - return retrySuspenseComponentWithoutHydrating( current, workInProgress, - renderLanes, - _capturedValue + renderLanes ); } else if (workInProgress.memoizedState !== null) { // Something suspended and we should still be in dehydrated mode. @@ -27328,11 +27321,12 @@ to return true:wantsResponderID| | ); } } - function renderDidError(error) { + function renderDidError() { if (workInProgressRootExitStatus !== RootSuspendedWithDelay) { workInProgressRootExitStatus = RootErrored; } - + } + function queueConcurrentError(error) { if (workInProgressRootConcurrentErrors === null) { workInProgressRootConcurrentErrors = [error]; } else { @@ -30489,7 +30483,7 @@ to return true:wantsResponderID| | return root; } - var ReactVersion = "19.0.0-canary-dbb66dd5"; + var ReactVersion = "19.0.0-canary-496f858d"; function createPortal$1( children, diff --git a/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactFabric-prod.fb.js b/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactFabric-prod.fb.js index 020dcbe883..4e80f0a1c6 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +++ b/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactFabric-prod.fb.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<> + * @generated SignedSource<> */ "use strict"; @@ -893,7 +893,7 @@ eventPluginOrder = Array.prototype.slice.call([ "ReactNativeBridgeEventPlugin" ]); recomputePluginOrdering(); -var injectedNamesToPlugins$jscomp$inline_250 = { +var injectedNamesToPlugins$jscomp$inline_248 = { ResponderEventPlugin: ResponderEventPlugin, ReactNativeBridgeEventPlugin: { eventTypes: {}, @@ -939,32 +939,32 @@ var injectedNamesToPlugins$jscomp$inline_250 = { } } }, - isOrderingDirty$jscomp$inline_251 = !1, - pluginName$jscomp$inline_252; -for (pluginName$jscomp$inline_252 in injectedNamesToPlugins$jscomp$inline_250) + isOrderingDirty$jscomp$inline_249 = !1, + pluginName$jscomp$inline_250; +for (pluginName$jscomp$inline_250 in injectedNamesToPlugins$jscomp$inline_248) if ( - injectedNamesToPlugins$jscomp$inline_250.hasOwnProperty( - pluginName$jscomp$inline_252 + injectedNamesToPlugins$jscomp$inline_248.hasOwnProperty( + pluginName$jscomp$inline_250 ) ) { - var pluginModule$jscomp$inline_253 = - injectedNamesToPlugins$jscomp$inline_250[pluginName$jscomp$inline_252]; + var pluginModule$jscomp$inline_251 = + injectedNamesToPlugins$jscomp$inline_248[pluginName$jscomp$inline_250]; if ( - !namesToPlugins.hasOwnProperty(pluginName$jscomp$inline_252) || - namesToPlugins[pluginName$jscomp$inline_252] !== - pluginModule$jscomp$inline_253 + !namesToPlugins.hasOwnProperty(pluginName$jscomp$inline_250) || + namesToPlugins[pluginName$jscomp$inline_250] !== + pluginModule$jscomp$inline_251 ) { - if (namesToPlugins[pluginName$jscomp$inline_252]) + if (namesToPlugins[pluginName$jscomp$inline_250]) throw Error( "EventPluginRegistry: Cannot inject two different event plugins using the same name, `" + - (pluginName$jscomp$inline_252 + "`.") + (pluginName$jscomp$inline_250 + "`.") ); - namesToPlugins[pluginName$jscomp$inline_252] = - pluginModule$jscomp$inline_253; - isOrderingDirty$jscomp$inline_251 = !0; + namesToPlugins[pluginName$jscomp$inline_250] = + pluginModule$jscomp$inline_251; + isOrderingDirty$jscomp$inline_249 = !0; } } -isOrderingDirty$jscomp$inline_251 && recomputePluginOrdering(); +isOrderingDirty$jscomp$inline_249 && recomputePluginOrdering(); var emptyObject$1 = {}, removedKeys = null, removedKeyCount = 0, @@ -1992,7 +1992,216 @@ function is(x, y) { return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y); } var objectIs = "function" === typeof Object.is ? Object.is : is, - contextStackCursor = createCursor(null), + prefix; +function describeBuiltInComponentFrame(name) { + if (enableComponentStackLocations) { + if (void 0 === prefix) + try { + throw Error(); + } catch (x) { + var match = x.stack.trim().match(/\n( *(at )?)/); + prefix = (match && match[1]) || ""; + } + return "\n" + prefix + name; + } + return describeComponentFrame(name, null); +} +var reentry = !1; +function describeNativeComponentFrame(fn, construct) { + if (!fn || reentry) return ""; + reentry = !0; + var previousPrepareStackTrace = Error.prepareStackTrace; + Error.prepareStackTrace = void 0; + var RunInRootFrame = { + DetermineComponentFrameRoot: function () { + try { + if (construct) { + var Fake = function () { + throw Error(); + }; + Object.defineProperty(Fake.prototype, "props", { + set: function () { + throw Error(); + } + }); + if ("object" === typeof Reflect && Reflect.construct) { + try { + Reflect.construct(Fake, []); + } catch (x) { + var control = x; + } + Reflect.construct(fn, [], Fake); + } else { + try { + Fake.call(); + } catch (x$9) { + control = x$9; + } + fn.call(Fake.prototype); + } + } else { + try { + throw Error(); + } catch (x$10) { + control = x$10; + } + (Fake = fn()) && + "function" === typeof Fake.catch && + Fake.catch(function () {}); + } + } catch (sample) { + if (sample && control && "string" === typeof sample.stack) + return [sample.stack, control.stack]; + } + return [null, null]; + } + }; + RunInRootFrame.DetermineComponentFrameRoot.displayName = + "DetermineComponentFrameRoot"; + var namePropDescriptor = Object.getOwnPropertyDescriptor( + RunInRootFrame.DetermineComponentFrameRoot, + "name" + ); + namePropDescriptor && + namePropDescriptor.configurable && + Object.defineProperty(RunInRootFrame.DetermineComponentFrameRoot, "name", { + value: "DetermineComponentFrameRoot" + }); + try { + var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(), + sampleStack = _RunInRootFrame$Deter[0], + controlStack = _RunInRootFrame$Deter[1]; + if (sampleStack && controlStack) { + var sampleLines = sampleStack.split("\n"), + controlLines = controlStack.split("\n"); + for ( + namePropDescriptor = RunInRootFrame = 0; + RunInRootFrame < sampleLines.length && + !sampleLines[RunInRootFrame].includes("DetermineComponentFrameRoot"); + + ) + RunInRootFrame++; + for ( + ; + namePropDescriptor < controlLines.length && + !controlLines[namePropDescriptor].includes( + "DetermineComponentFrameRoot" + ); + + ) + namePropDescriptor++; + if ( + RunInRootFrame === sampleLines.length || + namePropDescriptor === controlLines.length + ) + for ( + RunInRootFrame = sampleLines.length - 1, + namePropDescriptor = controlLines.length - 1; + 1 <= RunInRootFrame && + 0 <= namePropDescriptor && + sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]; + + ) + namePropDescriptor--; + for ( + ; + 1 <= RunInRootFrame && 0 <= namePropDescriptor; + RunInRootFrame--, namePropDescriptor-- + ) + if (sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) { + if (1 !== RunInRootFrame || 1 !== namePropDescriptor) { + do + if ( + (RunInRootFrame--, + namePropDescriptor--, + 0 > namePropDescriptor || + sampleLines[RunInRootFrame] !== + controlLines[namePropDescriptor]) + ) { + var frame = + "\n" + + sampleLines[RunInRootFrame].replace(" at new ", " at "); + fn.displayName && + frame.includes("") && + (frame = frame.replace("", fn.displayName)); + return frame; + } + while (1 <= RunInRootFrame && 0 <= namePropDescriptor); + } + break; + } + } + } finally { + (reentry = !1), (Error.prepareStackTrace = previousPrepareStackTrace); + } + return (previousPrepareStackTrace = fn ? fn.displayName || fn.name : "") + ? describeBuiltInComponentFrame(previousPrepareStackTrace) + : ""; +} +function describeComponentFrame(name, ownerName) { + var sourceInfo = ""; + ownerName && (sourceInfo = " (created by " + ownerName + ")"); + return "\n in " + (name || "Unknown") + sourceInfo; +} +function describeFunctionComponentFrame(fn) { + return enableComponentStackLocations + ? describeNativeComponentFrame(fn, !1) + : fn + ? describeComponentFrame(fn.displayName || fn.name || null, null) + : ""; +} +function describeFiber(fiber) { + switch (fiber.tag) { + case 26: + case 27: + case 5: + return describeBuiltInComponentFrame(fiber.type); + case 16: + return describeBuiltInComponentFrame("Lazy"); + case 13: + return describeBuiltInComponentFrame("Suspense"); + case 19: + return describeBuiltInComponentFrame("SuspenseList"); + case 0: + case 15: + return describeFunctionComponentFrame(fiber.type); + case 11: + return describeFunctionComponentFrame(fiber.type.render); + case 1: + return ( + (fiber = fiber.type), + (fiber = enableComponentStackLocations + ? describeNativeComponentFrame(fiber, !0) + : describeFunctionComponentFrame(fiber)), + fiber + ); + default: + return ""; + } +} +function getStackByFiberInDevAndProd(workInProgress) { + try { + var info = ""; + do + (info += describeFiber(workInProgress)), + (workInProgress = workInProgress.return); + while (workInProgress); + return info; + } catch (x) { + return "\nError generating stack: " + x.message + "\n" + x.stack; + } +} +var CapturedStacks = new WeakMap(); +function createCapturedValueAtFiber(value, source) { + if ("object" === typeof value && null !== value) { + var stack = CapturedStacks.get(value); + "string" !== typeof stack && + ((stack = getStackByFiberInDevAndProd(source)), + CapturedStacks.set(value, stack)); + } else stack = getStackByFiberInDevAndProd(source); + return { value: value, source: source, stack: stack }; +} +var contextStackCursor = createCursor(null), contextFiberStackCursor = createCursor(null), rootInstanceStackCursor = createCursor(null), hostTransitionProviderCursor = createCursor(null), @@ -2148,14 +2357,14 @@ function flushSyncWorkAcrossRoots_impl(onlyLegacy) { var didPerformSomeWork = !1; for (var root = firstScheduledRoot; null !== root; ) { if (!onlyLegacy || 0 === root.tag) { - var workInProgressRootRenderLanes$10 = workInProgressRootRenderLanes; - workInProgressRootRenderLanes$10 = getNextLanes( + var workInProgressRootRenderLanes$12 = workInProgressRootRenderLanes; + workInProgressRootRenderLanes$12 = getNextLanes( root, - root === workInProgressRoot ? workInProgressRootRenderLanes$10 : 0 + root === workInProgressRoot ? workInProgressRootRenderLanes$12 : 0 ); - 0 !== (workInProgressRootRenderLanes$10 & 3) && + 0 !== (workInProgressRootRenderLanes$12 & 3) && ((didPerformSomeWork = !0), - performSyncWorkOnRoot(root, workInProgressRootRenderLanes$10)); + performSyncWorkOnRoot(root, workInProgressRootRenderLanes$12)); } root = root.next; } @@ -2598,205 +2807,6 @@ function shallowEqual(objA, objB) { } return !0; } -var prefix; -function describeBuiltInComponentFrame(name) { - if (enableComponentStackLocations) { - if (void 0 === prefix) - try { - throw Error(); - } catch (x) { - var match = x.stack.trim().match(/\n( *(at )?)/); - prefix = (match && match[1]) || ""; - } - return "\n" + prefix + name; - } - return describeComponentFrame(name, null); -} -var reentry = !1; -function describeNativeComponentFrame(fn, construct) { - if (!fn || reentry) return ""; - reentry = !0; - var previousPrepareStackTrace = Error.prepareStackTrace; - Error.prepareStackTrace = void 0; - var RunInRootFrame = { - DetermineComponentFrameRoot: function () { - try { - if (construct) { - var Fake = function () { - throw Error(); - }; - Object.defineProperty(Fake.prototype, "props", { - set: function () { - throw Error(); - } - }); - if ("object" === typeof Reflect && Reflect.construct) { - try { - Reflect.construct(Fake, []); - } catch (x) { - var control = x; - } - Reflect.construct(fn, [], Fake); - } else { - try { - Fake.call(); - } catch (x$15) { - control = x$15; - } - fn.call(Fake.prototype); - } - } else { - try { - throw Error(); - } catch (x$16) { - control = x$16; - } - (Fake = fn()) && - "function" === typeof Fake.catch && - Fake.catch(function () {}); - } - } catch (sample) { - if (sample && control && "string" === typeof sample.stack) - return [sample.stack, control.stack]; - } - return [null, null]; - } - }; - RunInRootFrame.DetermineComponentFrameRoot.displayName = - "DetermineComponentFrameRoot"; - var namePropDescriptor = Object.getOwnPropertyDescriptor( - RunInRootFrame.DetermineComponentFrameRoot, - "name" - ); - namePropDescriptor && - namePropDescriptor.configurable && - Object.defineProperty(RunInRootFrame.DetermineComponentFrameRoot, "name", { - value: "DetermineComponentFrameRoot" - }); - try { - var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(), - sampleStack = _RunInRootFrame$Deter[0], - controlStack = _RunInRootFrame$Deter[1]; - if (sampleStack && controlStack) { - var sampleLines = sampleStack.split("\n"), - controlLines = controlStack.split("\n"); - for ( - namePropDescriptor = RunInRootFrame = 0; - RunInRootFrame < sampleLines.length && - !sampleLines[RunInRootFrame].includes("DetermineComponentFrameRoot"); - - ) - RunInRootFrame++; - for ( - ; - namePropDescriptor < controlLines.length && - !controlLines[namePropDescriptor].includes( - "DetermineComponentFrameRoot" - ); - - ) - namePropDescriptor++; - if ( - RunInRootFrame === sampleLines.length || - namePropDescriptor === controlLines.length - ) - for ( - RunInRootFrame = sampleLines.length - 1, - namePropDescriptor = controlLines.length - 1; - 1 <= RunInRootFrame && - 0 <= namePropDescriptor && - sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]; - - ) - namePropDescriptor--; - for ( - ; - 1 <= RunInRootFrame && 0 <= namePropDescriptor; - RunInRootFrame--, namePropDescriptor-- - ) - if (sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) { - if (1 !== RunInRootFrame || 1 !== namePropDescriptor) { - do - if ( - (RunInRootFrame--, - namePropDescriptor--, - 0 > namePropDescriptor || - sampleLines[RunInRootFrame] !== - controlLines[namePropDescriptor]) - ) { - var frame = - "\n" + - sampleLines[RunInRootFrame].replace(" at new ", " at "); - fn.displayName && - frame.includes("") && - (frame = frame.replace("", fn.displayName)); - return frame; - } - while (1 <= RunInRootFrame && 0 <= namePropDescriptor); - } - break; - } - } - } finally { - (reentry = !1), (Error.prepareStackTrace = previousPrepareStackTrace); - } - return (previousPrepareStackTrace = fn ? fn.displayName || fn.name : "") - ? describeBuiltInComponentFrame(previousPrepareStackTrace) - : ""; -} -function describeComponentFrame(name, ownerName) { - var sourceInfo = ""; - ownerName && (sourceInfo = " (created by " + ownerName + ")"); - return "\n in " + (name || "Unknown") + sourceInfo; -} -function describeFunctionComponentFrame(fn) { - return enableComponentStackLocations - ? describeNativeComponentFrame(fn, !1) - : fn - ? describeComponentFrame(fn.displayName || fn.name || null, null) - : ""; -} -function describeFiber(fiber) { - switch (fiber.tag) { - case 26: - case 27: - case 5: - return describeBuiltInComponentFrame(fiber.type); - case 16: - return describeBuiltInComponentFrame("Lazy"); - case 13: - return describeBuiltInComponentFrame("Suspense"); - case 19: - return describeBuiltInComponentFrame("SuspenseList"); - case 0: - case 15: - return describeFunctionComponentFrame(fiber.type); - case 11: - return describeFunctionComponentFrame(fiber.type.render); - case 1: - return ( - (fiber = fiber.type), - (fiber = enableComponentStackLocations - ? describeNativeComponentFrame(fiber, !0) - : describeFunctionComponentFrame(fiber)), - fiber - ); - default: - return ""; - } -} -function getStackByFiberInDevAndProd(workInProgress) { - try { - var info = ""; - do - (info += describeFiber(workInProgress)), - (workInProgress = workInProgress.return); - while (workInProgress); - return info; - } catch (x) { - return "\nError generating stack: " + x.message + "\n" + x.stack; - } -} var SuspenseException = Error( "Suspense Exception: This is not a real error! It's an implementation detail of `use` to interrupt the current render. You must either rethrow it immediately, or move the `use` call outside of the `try/catch` block. Capturing without rethrowing will lead to unexpected behavior.\n\nTo handle async errors, wrap your component in an error boundary, or call the promise's `.catch` method and pass the result to `use`" ), @@ -5084,20 +5094,6 @@ function resolveDefaultProps(Component, baseProps) { } return baseProps; } -var CapturedStacks = new WeakMap(); -function createCapturedValueAtFiber(value, source) { - if ("object" === typeof value && null !== value) { - var stack = CapturedStacks.get(value); - "string" !== typeof stack && - ((stack = getStackByFiberInDevAndProd(source)), - CapturedStacks.set(value, stack)); - } else stack = getStackByFiberInDevAndProd(source); - return { value: value, source: source, stack: stack }; -} -function createCapturedValueFromError(value, stack) { - "string" === typeof stack && CapturedStacks.set(value, stack); - return { value: value, source: null, stack: stack }; -} var reportGlobalError = "function" === typeof reportError ? reportError @@ -5206,32 +5202,31 @@ function throwException( "object" === typeof value && "function" === typeof value.then ) { - var wakeable = value; - value = sourceFiber.tag; + var tag = sourceFiber.tag; 0 !== (sourceFiber.mode & 1) || - (0 !== value && 11 !== value && 15 !== value) || - ((value = sourceFiber.alternate) - ? ((sourceFiber.updateQueue = value.updateQueue), - (sourceFiber.memoizedState = value.memoizedState), - (sourceFiber.lanes = value.lanes)) + (0 !== tag && 11 !== tag && 15 !== tag) || + ((tag = sourceFiber.alternate) + ? ((sourceFiber.updateQueue = tag.updateQueue), + (sourceFiber.memoizedState = tag.memoizedState), + (sourceFiber.lanes = tag.lanes)) : ((sourceFiber.updateQueue = null), (sourceFiber.memoizedState = null))); - value = suspenseHandlerStackCursor.current; - if (null !== value) { - switch (value.tag) { + tag = suspenseHandlerStackCursor.current; + if (null !== tag) { + switch (tag.tag) { case 13: return ( sourceFiber.mode & 1 && (null === shellBoundary ? renderDidSuspendDelayIfPossible() - : null === value.alternate && + : null === tag.alternate && 0 === workInProgressRootExitStatus && (workInProgressRootExitStatus = 3)), - (value.flags &= -257), - 0 === (value.mode & 1) - ? value === returnFiber - ? (value.flags |= 65536) - : ((value.flags |= 128), + (tag.flags &= -257), + 0 === (tag.mode & 1) + ? tag === returnFiber + ? (tag.flags |= 65536) + : ((tag.flags |= 128), (sourceFiber.flags |= 131072), (sourceFiber.flags &= -52805), 1 === sourceFiber.tag @@ -5244,48 +5239,48 @@ function throwException( null === sourceFiber.alternate && (sourceFiber.tag = 28), (sourceFiber.lanes |= 2)) - : ((value.flags |= 65536), (value.lanes = rootRenderLanes)), - wakeable === noopSuspenseyCommitThenable - ? (value.flags |= 16384) - : ((returnFiber = value.updateQueue), + : ((tag.flags |= 65536), (tag.lanes = rootRenderLanes)), + value === noopSuspenseyCommitThenable + ? (tag.flags |= 16384) + : ((returnFiber = tag.updateQueue), null === returnFiber - ? (value.updateQueue = new Set([wakeable])) - : returnFiber.add(wakeable), - value.mode & 1 && - attachPingListener(root, wakeable, rootRenderLanes)), + ? (tag.updateQueue = new Set([value])) + : returnFiber.add(value), + tag.mode & 1 && + attachPingListener(root, value, rootRenderLanes)), !1 ); case 22: - if (value.mode & 1) + if (tag.mode & 1) return ( - (value.flags |= 65536), - wakeable === noopSuspenseyCommitThenable - ? (value.flags |= 16384) - : ((returnFiber = value.updateQueue), + (tag.flags |= 65536), + value === noopSuspenseyCommitThenable + ? (tag.flags |= 16384) + : ((returnFiber = tag.updateQueue), null === returnFiber ? ((returnFiber = { transitions: null, markerInstances: null, - retryQueue: new Set([wakeable]) + retryQueue: new Set([value]) }), - (value.updateQueue = returnFiber)) + (tag.updateQueue = returnFiber)) : ((sourceFiber = returnFiber.retryQueue), null === sourceFiber - ? (returnFiber.retryQueue = new Set([wakeable])) - : sourceFiber.add(wakeable)), - attachPingListener(root, wakeable, rootRenderLanes)), + ? (returnFiber.retryQueue = new Set([value])) + : sourceFiber.add(value)), + attachPingListener(root, value, rootRenderLanes)), !1 ); } throw Error( "Unexpected Suspense handler tag (" + - value.tag + + tag.tag + "). This is a bug in React." ); } if (1 === root.tag) return ( - attachPingListener(root, wakeable, rootRenderLanes), + attachPingListener(root, value, rootRenderLanes), renderDidSuspendDelayIfPossible(), !1 ); @@ -5293,58 +5288,58 @@ function throwException( "A component suspended while responding to synchronous input. This will cause the UI to be replaced with a loading indicator. To fix, updates that suspend should be wrapped with startTransition." ); } - wakeable = value = createCapturedValueAtFiber(value, sourceFiber); - 4 !== workInProgressRootExitStatus && (workInProgressRootExitStatus = 2); + tag = createCapturedValueAtFiber( + Error( + "There was an error during concurrent rendering but React was able to recover by instead synchronously rendering the entire root.", + { cause: value } + ), + sourceFiber + ); null === workInProgressRootConcurrentErrors - ? (workInProgressRootConcurrentErrors = [wakeable]) - : workInProgressRootConcurrentErrors.push(wakeable); + ? (workInProgressRootConcurrentErrors = [tag]) + : workInProgressRootConcurrentErrors.push(tag); + 4 !== workInProgressRootExitStatus && (workInProgressRootExitStatus = 2); if (null === returnFiber) return !0; - wakeable = returnFiber; + value = createCapturedValueAtFiber(value, sourceFiber); do { - switch (wakeable.tag) { + switch (returnFiber.tag) { case 3: return ( - (root = value), - (wakeable.flags |= 65536), - (rootRenderLanes &= -rootRenderLanes), - (wakeable.lanes |= rootRenderLanes), - (root = createRootErrorUpdate( - wakeable.stateNode, - root, - rootRenderLanes - )), - enqueueCapturedUpdate(wakeable, root), + (returnFiber.flags |= 65536), + (root = rootRenderLanes & -rootRenderLanes), + (returnFiber.lanes |= root), + (root = createRootErrorUpdate(returnFiber.stateNode, value, root)), + enqueueCapturedUpdate(returnFiber, root), !1 ); case 1: - returnFiber = value; - sourceFiber = wakeable.type; - var instance = wakeable.stateNode; if ( - 0 === (wakeable.flags & 128) && - ("function" === typeof sourceFiber.getDerivedStateFromError || - (null !== instance && - "function" === typeof instance.componentDidCatch && - (null === legacyErrorBoundariesThatAlreadyFailed || - !legacyErrorBoundariesThatAlreadyFailed.has(instance)))) + ((sourceFiber = returnFiber.type), + (tag = returnFiber.stateNode), + 0 === (returnFiber.flags & 128) && + ("function" === typeof sourceFiber.getDerivedStateFromError || + (null !== tag && + "function" === typeof tag.componentDidCatch && + (null === legacyErrorBoundariesThatAlreadyFailed || + !legacyErrorBoundariesThatAlreadyFailed.has(tag))))) ) return ( - (wakeable.flags |= 65536), + (returnFiber.flags |= 65536), (rootRenderLanes &= -rootRenderLanes), - (wakeable.lanes |= rootRenderLanes), + (returnFiber.lanes |= rootRenderLanes), (rootRenderLanes = createClassErrorUpdate(rootRenderLanes)), initializeClassErrorUpdate( rootRenderLanes, root, - wakeable, - returnFiber + returnFiber, + value ), - enqueueCapturedUpdate(wakeable, rootRenderLanes), + enqueueCapturedUpdate(returnFiber, rootRenderLanes), !1 ); } - wakeable = wakeable.return; - } while (null !== wakeable); + returnFiber = returnFiber.return; + } while (null !== returnFiber); return !1; } var ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner, @@ -5960,17 +5955,10 @@ function updateSuspenseComponent(current, workInProgress, renderLanes) { workInProgress.flags & 256 ? (pushPrimaryTreeSuspenseHandler(workInProgress), (workInProgress.flags &= -257), - (JSCompiler_temp = createCapturedValueFromError( - Error( - "There was an error while hydrating this Suspense boundary. Switched to client rendering." - ), - null - )), (workInProgress = retrySuspenseComponentWithoutHydrating( current, workInProgress, - renderLanes, - JSCompiler_temp + renderLanes ))) : null !== workInProgress.memoizedState ? (reuseSuspenseHandlerOnStack(workInProgress), @@ -6020,12 +6008,14 @@ function updateSuspenseComponent(current, workInProgress, renderLanes) { )), (nextProps.stack = ""), (nextProps.digest = JSCompiler_temp), - (JSCompiler_temp = createCapturedValueFromError(nextProps, null)), + (JSCompiler_temp = { value: nextProps, source: null, stack: null }), + null === hydrationErrors + ? (hydrationErrors = [JSCompiler_temp]) + : hydrationErrors.push(JSCompiler_temp), (workInProgress = retrySuspenseComponentWithoutHydrating( current, workInProgress, - renderLanes, - JSCompiler_temp + renderLanes )); else if ( ((JSCompiler_temp = 0 !== (renderLanes & current.childLanes)), @@ -6090,8 +6080,7 @@ function updateSuspenseComponent(current, workInProgress, renderLanes) { workInProgress = retrySuspenseComponentWithoutHydrating( current, workInProgress, - renderLanes, - null + renderLanes ); } else shim$1() @@ -6228,13 +6217,8 @@ function mountSuspenseFallbackChildren( function retrySuspenseComponentWithoutHydrating( current, workInProgress, - renderLanes, - recoverableError + renderLanes ) { - null !== recoverableError && - (null === hydrationErrors - ? (hydrationErrors = [recoverableError]) - : hydrationErrors.push(recoverableError)); reconcileChildFibers(workInProgress, current.child, null, renderLanes); current = mountSuspensePrimaryChildren( workInProgress, @@ -7218,14 +7202,14 @@ function cutOffTailIfNeeded(renderState, hasRenderedATailFallback) { break; case "collapsed": lastTailNode = renderState.tail; - for (var lastTailNode$77 = null; null !== lastTailNode; ) - null !== lastTailNode.alternate && (lastTailNode$77 = lastTailNode), + for (var lastTailNode$75 = null; null !== lastTailNode; ) + null !== lastTailNode.alternate && (lastTailNode$75 = lastTailNode), (lastTailNode = lastTailNode.sibling); - null === lastTailNode$77 + null === lastTailNode$75 ? hasRenderedATailFallback || null === renderState.tail ? (renderState.tail = null) : (renderState.tail.sibling = null) - : (lastTailNode$77.sibling = null); + : (lastTailNode$75.sibling = null); } } function bubbleProperties(completedWork) { @@ -7235,19 +7219,19 @@ function bubbleProperties(completedWork) { newChildLanes = 0, subtreeFlags = 0; if (didBailout) - for (var child$78 = completedWork.child; null !== child$78; ) - (newChildLanes |= child$78.lanes | child$78.childLanes), - (subtreeFlags |= child$78.subtreeFlags & 31457280), - (subtreeFlags |= child$78.flags & 31457280), - (child$78.return = completedWork), - (child$78 = child$78.sibling); + for (var child$76 = completedWork.child; null !== child$76; ) + (newChildLanes |= child$76.lanes | child$76.childLanes), + (subtreeFlags |= child$76.subtreeFlags & 31457280), + (subtreeFlags |= child$76.flags & 31457280), + (child$76.return = completedWork), + (child$76 = child$76.sibling); else - for (child$78 = completedWork.child; null !== child$78; ) - (newChildLanes |= child$78.lanes | child$78.childLanes), - (subtreeFlags |= child$78.subtreeFlags), - (subtreeFlags |= child$78.flags), - (child$78.return = completedWork), - (child$78 = child$78.sibling); + for (child$76 = completedWork.child; null !== child$76; ) + (newChildLanes |= child$76.lanes | child$76.childLanes), + (subtreeFlags |= child$76.subtreeFlags), + (subtreeFlags |= child$76.flags), + (child$76.return = completedWork), + (child$76 = child$76.sibling); completedWork.subtreeFlags |= subtreeFlags; completedWork.childLanes = newChildLanes; return didBailout; @@ -7807,8 +7791,8 @@ function safelyDetachRef(current, nearestMountedAncestor) { else if ("function" === typeof ref) try { ref(null); - } catch (error$100) { - captureCommitPhaseError(current, nearestMountedAncestor, error$100); + } catch (error$98) { + captureCommitPhaseError(current, nearestMountedAncestor, error$98); } else ref.current = null; } @@ -7913,10 +7897,10 @@ function commitHookEffectListMount(flags, finishedWork) { var effect = (finishedWork = finishedWork.next); do { if ((effect.tag & flags) === flags) { - var create$101 = effect.create, + var create$99 = effect.create, inst = effect.inst; - create$101 = create$101(); - inst.destroy = create$101; + create$99 = create$99(); + inst.destroy = create$99; } effect = effect.next; } while (effect !== finishedWork); @@ -7980,11 +7964,11 @@ function commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) { current, finishedRoot.__reactInternalSnapshotBeforeUpdate ); - } catch (error$102) { + } catch (error$100) { captureCommitPhaseError( finishedWork, finishedWork.return, - error$102 + error$100 ); } } @@ -8276,8 +8260,8 @@ function commitMutationEffectsOnFiber(finishedWork, root) { } try { commitHookEffectListUnmount(5, finishedWork, finishedWork.return); - } catch (error$104) { - captureCommitPhaseError(finishedWork, finishedWork.return, error$104); + } catch (error$102) { + captureCommitPhaseError(finishedWork, finishedWork.return, error$102); } } break; @@ -9516,8 +9500,8 @@ function renderRootSync(root, lanes) { } workLoopSync(); break; - } catch (thrownValue$116) { - handleThrow(root, thrownValue$116); + } catch (thrownValue$114) { + handleThrow(root, thrownValue$114); } while (1); lanes && root.shellSuspendCounter++; @@ -9625,8 +9609,8 @@ function renderRootConcurrent(root, lanes) { } workLoopConcurrent(); break; - } catch (thrownValue$118) { - handleThrow(root, thrownValue$118); + } catch (thrownValue$116) { + handleThrow(root, thrownValue$116); } while (1); resetContextDependencies(); @@ -10631,10 +10615,10 @@ batchedUpdatesImpl = function (fn, a) { } }; var roots = new Map(), - devToolsConfig$jscomp$inline_1100 = { + devToolsConfig$jscomp$inline_1096 = { findFiberByHostInstance: getInstanceFromNode, bundleType: 0, - version: "19.0.0-canary-82133e6d", + version: "19.0.0-canary-263f053a", rendererPackageName: "react-native-renderer", rendererConfig: { getInspectorDataForInstance: getInspectorDataForInstance, @@ -10650,11 +10634,11 @@ var roots = new Map(), }.bind(null, findNodeHandle) } }; -var internals$jscomp$inline_1333 = { - bundleType: devToolsConfig$jscomp$inline_1100.bundleType, - version: devToolsConfig$jscomp$inline_1100.version, - rendererPackageName: devToolsConfig$jscomp$inline_1100.rendererPackageName, - rendererConfig: devToolsConfig$jscomp$inline_1100.rendererConfig, +var internals$jscomp$inline_1335 = { + bundleType: devToolsConfig$jscomp$inline_1096.bundleType, + version: devToolsConfig$jscomp$inline_1096.version, + rendererPackageName: devToolsConfig$jscomp$inline_1096.rendererPackageName, + rendererConfig: devToolsConfig$jscomp$inline_1096.rendererConfig, overrideHookState: null, overrideHookStateDeletePath: null, overrideHookStateRenamePath: null, @@ -10670,26 +10654,26 @@ var internals$jscomp$inline_1333 = { return null === fiber ? null : fiber.stateNode; }, findFiberByHostInstance: - devToolsConfig$jscomp$inline_1100.findFiberByHostInstance || + devToolsConfig$jscomp$inline_1096.findFiberByHostInstance || emptyFindFiberByHostInstance, findHostInstancesForRefresh: null, scheduleRefresh: null, scheduleRoot: null, setRefreshHandler: null, getCurrentFiber: null, - reconcilerVersion: "19.0.0-canary-82133e6d" + reconcilerVersion: "19.0.0-canary-263f053a" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { - var hook$jscomp$inline_1334 = __REACT_DEVTOOLS_GLOBAL_HOOK__; + var hook$jscomp$inline_1336 = __REACT_DEVTOOLS_GLOBAL_HOOK__; if ( - !hook$jscomp$inline_1334.isDisabled && - hook$jscomp$inline_1334.supportsFiber + !hook$jscomp$inline_1336.isDisabled && + hook$jscomp$inline_1336.supportsFiber ) try { - (rendererID = hook$jscomp$inline_1334.inject( - internals$jscomp$inline_1333 + (rendererID = hook$jscomp$inline_1336.inject( + internals$jscomp$inline_1335 )), - (injectedHook = hook$jscomp$inline_1334); + (injectedHook = hook$jscomp$inline_1336); } catch (err) {} } exports.createPortal = function (children, containerTag) { diff --git a/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js b/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js index 1de4a2db84..9af7714f20 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +++ b/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<> + * @generated SignedSource<<1bfd8110a6f721e6155b095d133381bc>> */ "use strict"; @@ -897,7 +897,7 @@ eventPluginOrder = Array.prototype.slice.call([ "ReactNativeBridgeEventPlugin" ]); recomputePluginOrdering(); -var injectedNamesToPlugins$jscomp$inline_266 = { +var injectedNamesToPlugins$jscomp$inline_264 = { ResponderEventPlugin: ResponderEventPlugin, ReactNativeBridgeEventPlugin: { eventTypes: {}, @@ -943,32 +943,32 @@ var injectedNamesToPlugins$jscomp$inline_266 = { } } }, - isOrderingDirty$jscomp$inline_267 = !1, - pluginName$jscomp$inline_268; -for (pluginName$jscomp$inline_268 in injectedNamesToPlugins$jscomp$inline_266) + isOrderingDirty$jscomp$inline_265 = !1, + pluginName$jscomp$inline_266; +for (pluginName$jscomp$inline_266 in injectedNamesToPlugins$jscomp$inline_264) if ( - injectedNamesToPlugins$jscomp$inline_266.hasOwnProperty( - pluginName$jscomp$inline_268 + injectedNamesToPlugins$jscomp$inline_264.hasOwnProperty( + pluginName$jscomp$inline_266 ) ) { - var pluginModule$jscomp$inline_269 = - injectedNamesToPlugins$jscomp$inline_266[pluginName$jscomp$inline_268]; + var pluginModule$jscomp$inline_267 = + injectedNamesToPlugins$jscomp$inline_264[pluginName$jscomp$inline_266]; if ( - !namesToPlugins.hasOwnProperty(pluginName$jscomp$inline_268) || - namesToPlugins[pluginName$jscomp$inline_268] !== - pluginModule$jscomp$inline_269 + !namesToPlugins.hasOwnProperty(pluginName$jscomp$inline_266) || + namesToPlugins[pluginName$jscomp$inline_266] !== + pluginModule$jscomp$inline_267 ) { - if (namesToPlugins[pluginName$jscomp$inline_268]) + if (namesToPlugins[pluginName$jscomp$inline_266]) throw Error( "EventPluginRegistry: Cannot inject two different event plugins using the same name, `" + - (pluginName$jscomp$inline_268 + "`.") + (pluginName$jscomp$inline_266 + "`.") ); - namesToPlugins[pluginName$jscomp$inline_268] = - pluginModule$jscomp$inline_269; - isOrderingDirty$jscomp$inline_267 = !0; + namesToPlugins[pluginName$jscomp$inline_266] = + pluginModule$jscomp$inline_267; + isOrderingDirty$jscomp$inline_265 = !0; } } -isOrderingDirty$jscomp$inline_267 && recomputePluginOrdering(); +isOrderingDirty$jscomp$inline_265 && recomputePluginOrdering(); var emptyObject$1 = {}, removedKeys = null, removedKeyCount = 0, @@ -2114,7 +2114,216 @@ function is(x, y) { return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y); } var objectIs = "function" === typeof Object.is ? Object.is : is, - contextStackCursor = createCursor(null), + prefix; +function describeBuiltInComponentFrame(name) { + if (enableComponentStackLocations) { + if (void 0 === prefix) + try { + throw Error(); + } catch (x) { + var match = x.stack.trim().match(/\n( *(at )?)/); + prefix = (match && match[1]) || ""; + } + return "\n" + prefix + name; + } + return describeComponentFrame(name, null); +} +var reentry = !1; +function describeNativeComponentFrame(fn, construct) { + if (!fn || reentry) return ""; + reentry = !0; + var previousPrepareStackTrace = Error.prepareStackTrace; + Error.prepareStackTrace = void 0; + var RunInRootFrame = { + DetermineComponentFrameRoot: function () { + try { + if (construct) { + var Fake = function () { + throw Error(); + }; + Object.defineProperty(Fake.prototype, "props", { + set: function () { + throw Error(); + } + }); + if ("object" === typeof Reflect && Reflect.construct) { + try { + Reflect.construct(Fake, []); + } catch (x) { + var control = x; + } + Reflect.construct(fn, [], Fake); + } else { + try { + Fake.call(); + } catch (x$12) { + control = x$12; + } + fn.call(Fake.prototype); + } + } else { + try { + throw Error(); + } catch (x$13) { + control = x$13; + } + (Fake = fn()) && + "function" === typeof Fake.catch && + Fake.catch(function () {}); + } + } catch (sample) { + if (sample && control && "string" === typeof sample.stack) + return [sample.stack, control.stack]; + } + return [null, null]; + } + }; + RunInRootFrame.DetermineComponentFrameRoot.displayName = + "DetermineComponentFrameRoot"; + var namePropDescriptor = Object.getOwnPropertyDescriptor( + RunInRootFrame.DetermineComponentFrameRoot, + "name" + ); + namePropDescriptor && + namePropDescriptor.configurable && + Object.defineProperty(RunInRootFrame.DetermineComponentFrameRoot, "name", { + value: "DetermineComponentFrameRoot" + }); + try { + var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(), + sampleStack = _RunInRootFrame$Deter[0], + controlStack = _RunInRootFrame$Deter[1]; + if (sampleStack && controlStack) { + var sampleLines = sampleStack.split("\n"), + controlLines = controlStack.split("\n"); + for ( + namePropDescriptor = RunInRootFrame = 0; + RunInRootFrame < sampleLines.length && + !sampleLines[RunInRootFrame].includes("DetermineComponentFrameRoot"); + + ) + RunInRootFrame++; + for ( + ; + namePropDescriptor < controlLines.length && + !controlLines[namePropDescriptor].includes( + "DetermineComponentFrameRoot" + ); + + ) + namePropDescriptor++; + if ( + RunInRootFrame === sampleLines.length || + namePropDescriptor === controlLines.length + ) + for ( + RunInRootFrame = sampleLines.length - 1, + namePropDescriptor = controlLines.length - 1; + 1 <= RunInRootFrame && + 0 <= namePropDescriptor && + sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]; + + ) + namePropDescriptor--; + for ( + ; + 1 <= RunInRootFrame && 0 <= namePropDescriptor; + RunInRootFrame--, namePropDescriptor-- + ) + if (sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) { + if (1 !== RunInRootFrame || 1 !== namePropDescriptor) { + do + if ( + (RunInRootFrame--, + namePropDescriptor--, + 0 > namePropDescriptor || + sampleLines[RunInRootFrame] !== + controlLines[namePropDescriptor]) + ) { + var frame = + "\n" + + sampleLines[RunInRootFrame].replace(" at new ", " at "); + fn.displayName && + frame.includes("") && + (frame = frame.replace("", fn.displayName)); + return frame; + } + while (1 <= RunInRootFrame && 0 <= namePropDescriptor); + } + break; + } + } + } finally { + (reentry = !1), (Error.prepareStackTrace = previousPrepareStackTrace); + } + return (previousPrepareStackTrace = fn ? fn.displayName || fn.name : "") + ? describeBuiltInComponentFrame(previousPrepareStackTrace) + : ""; +} +function describeComponentFrame(name, ownerName) { + var sourceInfo = ""; + ownerName && (sourceInfo = " (created by " + ownerName + ")"); + return "\n in " + (name || "Unknown") + sourceInfo; +} +function describeFunctionComponentFrame(fn) { + return enableComponentStackLocations + ? describeNativeComponentFrame(fn, !1) + : fn + ? describeComponentFrame(fn.displayName || fn.name || null, null) + : ""; +} +function describeFiber(fiber) { + switch (fiber.tag) { + case 26: + case 27: + case 5: + return describeBuiltInComponentFrame(fiber.type); + case 16: + return describeBuiltInComponentFrame("Lazy"); + case 13: + return describeBuiltInComponentFrame("Suspense"); + case 19: + return describeBuiltInComponentFrame("SuspenseList"); + case 0: + case 15: + return describeFunctionComponentFrame(fiber.type); + case 11: + return describeFunctionComponentFrame(fiber.type.render); + case 1: + return ( + (fiber = fiber.type), + (fiber = enableComponentStackLocations + ? describeNativeComponentFrame(fiber, !0) + : describeFunctionComponentFrame(fiber)), + fiber + ); + default: + return ""; + } +} +function getStackByFiberInDevAndProd(workInProgress) { + try { + var info = ""; + do + (info += describeFiber(workInProgress)), + (workInProgress = workInProgress.return); + while (workInProgress); + return info; + } catch (x) { + return "\nError generating stack: " + x.message + "\n" + x.stack; + } +} +var CapturedStacks = new WeakMap(); +function createCapturedValueAtFiber(value, source) { + if ("object" === typeof value && null !== value) { + var stack = CapturedStacks.get(value); + "string" !== typeof stack && + ((stack = getStackByFiberInDevAndProd(source)), + CapturedStacks.set(value, stack)); + } else stack = getStackByFiberInDevAndProd(source); + return { value: value, source: source, stack: stack }; +} +var contextStackCursor = createCursor(null), contextFiberStackCursor = createCursor(null), rootInstanceStackCursor = createCursor(null), hostTransitionProviderCursor = createCursor(null), @@ -2270,14 +2479,14 @@ function flushSyncWorkAcrossRoots_impl(onlyLegacy) { var didPerformSomeWork = !1; for (var root = firstScheduledRoot; null !== root; ) { if (!onlyLegacy || 0 === root.tag) { - var workInProgressRootRenderLanes$13 = workInProgressRootRenderLanes; - workInProgressRootRenderLanes$13 = getNextLanes( + var workInProgressRootRenderLanes$15 = workInProgressRootRenderLanes; + workInProgressRootRenderLanes$15 = getNextLanes( root, - root === workInProgressRoot ? workInProgressRootRenderLanes$13 : 0 + root === workInProgressRoot ? workInProgressRootRenderLanes$15 : 0 ); - 0 !== (workInProgressRootRenderLanes$13 & 3) && + 0 !== (workInProgressRootRenderLanes$15 & 3) && ((didPerformSomeWork = !0), - performSyncWorkOnRoot(root, workInProgressRootRenderLanes$13)); + performSyncWorkOnRoot(root, workInProgressRootRenderLanes$15)); } root = root.next; } @@ -2720,205 +2929,6 @@ function shallowEqual(objA, objB) { } return !0; } -var prefix; -function describeBuiltInComponentFrame(name) { - if (enableComponentStackLocations) { - if (void 0 === prefix) - try { - throw Error(); - } catch (x) { - var match = x.stack.trim().match(/\n( *(at )?)/); - prefix = (match && match[1]) || ""; - } - return "\n" + prefix + name; - } - return describeComponentFrame(name, null); -} -var reentry = !1; -function describeNativeComponentFrame(fn, construct) { - if (!fn || reentry) return ""; - reentry = !0; - var previousPrepareStackTrace = Error.prepareStackTrace; - Error.prepareStackTrace = void 0; - var RunInRootFrame = { - DetermineComponentFrameRoot: function () { - try { - if (construct) { - var Fake = function () { - throw Error(); - }; - Object.defineProperty(Fake.prototype, "props", { - set: function () { - throw Error(); - } - }); - if ("object" === typeof Reflect && Reflect.construct) { - try { - Reflect.construct(Fake, []); - } catch (x) { - var control = x; - } - Reflect.construct(fn, [], Fake); - } else { - try { - Fake.call(); - } catch (x$18) { - control = x$18; - } - fn.call(Fake.prototype); - } - } else { - try { - throw Error(); - } catch (x$19) { - control = x$19; - } - (Fake = fn()) && - "function" === typeof Fake.catch && - Fake.catch(function () {}); - } - } catch (sample) { - if (sample && control && "string" === typeof sample.stack) - return [sample.stack, control.stack]; - } - return [null, null]; - } - }; - RunInRootFrame.DetermineComponentFrameRoot.displayName = - "DetermineComponentFrameRoot"; - var namePropDescriptor = Object.getOwnPropertyDescriptor( - RunInRootFrame.DetermineComponentFrameRoot, - "name" - ); - namePropDescriptor && - namePropDescriptor.configurable && - Object.defineProperty(RunInRootFrame.DetermineComponentFrameRoot, "name", { - value: "DetermineComponentFrameRoot" - }); - try { - var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(), - sampleStack = _RunInRootFrame$Deter[0], - controlStack = _RunInRootFrame$Deter[1]; - if (sampleStack && controlStack) { - var sampleLines = sampleStack.split("\n"), - controlLines = controlStack.split("\n"); - for ( - namePropDescriptor = RunInRootFrame = 0; - RunInRootFrame < sampleLines.length && - !sampleLines[RunInRootFrame].includes("DetermineComponentFrameRoot"); - - ) - RunInRootFrame++; - for ( - ; - namePropDescriptor < controlLines.length && - !controlLines[namePropDescriptor].includes( - "DetermineComponentFrameRoot" - ); - - ) - namePropDescriptor++; - if ( - RunInRootFrame === sampleLines.length || - namePropDescriptor === controlLines.length - ) - for ( - RunInRootFrame = sampleLines.length - 1, - namePropDescriptor = controlLines.length - 1; - 1 <= RunInRootFrame && - 0 <= namePropDescriptor && - sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]; - - ) - namePropDescriptor--; - for ( - ; - 1 <= RunInRootFrame && 0 <= namePropDescriptor; - RunInRootFrame--, namePropDescriptor-- - ) - if (sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) { - if (1 !== RunInRootFrame || 1 !== namePropDescriptor) { - do - if ( - (RunInRootFrame--, - namePropDescriptor--, - 0 > namePropDescriptor || - sampleLines[RunInRootFrame] !== - controlLines[namePropDescriptor]) - ) { - var frame = - "\n" + - sampleLines[RunInRootFrame].replace(" at new ", " at "); - fn.displayName && - frame.includes("") && - (frame = frame.replace("", fn.displayName)); - return frame; - } - while (1 <= RunInRootFrame && 0 <= namePropDescriptor); - } - break; - } - } - } finally { - (reentry = !1), (Error.prepareStackTrace = previousPrepareStackTrace); - } - return (previousPrepareStackTrace = fn ? fn.displayName || fn.name : "") - ? describeBuiltInComponentFrame(previousPrepareStackTrace) - : ""; -} -function describeComponentFrame(name, ownerName) { - var sourceInfo = ""; - ownerName && (sourceInfo = " (created by " + ownerName + ")"); - return "\n in " + (name || "Unknown") + sourceInfo; -} -function describeFunctionComponentFrame(fn) { - return enableComponentStackLocations - ? describeNativeComponentFrame(fn, !1) - : fn - ? describeComponentFrame(fn.displayName || fn.name || null, null) - : ""; -} -function describeFiber(fiber) { - switch (fiber.tag) { - case 26: - case 27: - case 5: - return describeBuiltInComponentFrame(fiber.type); - case 16: - return describeBuiltInComponentFrame("Lazy"); - case 13: - return describeBuiltInComponentFrame("Suspense"); - case 19: - return describeBuiltInComponentFrame("SuspenseList"); - case 0: - case 15: - return describeFunctionComponentFrame(fiber.type); - case 11: - return describeFunctionComponentFrame(fiber.type.render); - case 1: - return ( - (fiber = fiber.type), - (fiber = enableComponentStackLocations - ? describeNativeComponentFrame(fiber, !0) - : describeFunctionComponentFrame(fiber)), - fiber - ); - default: - return ""; - } -} -function getStackByFiberInDevAndProd(workInProgress) { - try { - var info = ""; - do - (info += describeFiber(workInProgress)), - (workInProgress = workInProgress.return); - while (workInProgress); - return info; - } catch (x) { - return "\nError generating stack: " + x.message + "\n" + x.stack; - } -} var SuspenseException = Error( "Suspense Exception: This is not a real error! It's an implementation detail of `use` to interrupt the current render. You must either rethrow it immediately, or move the `use` call outside of the `try/catch` block. Capturing without rethrowing will lead to unexpected behavior.\n\nTo handle async errors, wrap your component in an error boundary, or call the promise's `.catch` method and pass the result to `use`" ), @@ -5276,20 +5286,6 @@ function resolveDefaultProps(Component, baseProps) { } return baseProps; } -var CapturedStacks = new WeakMap(); -function createCapturedValueAtFiber(value, source) { - if ("object" === typeof value && null !== value) { - var stack = CapturedStacks.get(value); - "string" !== typeof stack && - ((stack = getStackByFiberInDevAndProd(source)), - CapturedStacks.set(value, stack)); - } else stack = getStackByFiberInDevAndProd(source); - return { value: value, source: source, stack: stack }; -} -function createCapturedValueFromError(value, stack) { - "string" === typeof stack && CapturedStacks.set(value, stack); - return { value: value, source: null, stack: stack }; -} var reportGlobalError = "function" === typeof reportError ? reportError @@ -5399,32 +5395,31 @@ function throwException( "object" === typeof value && "function" === typeof value.then ) { - var wakeable = value; - value = sourceFiber.tag; + var tag = sourceFiber.tag; 0 !== (sourceFiber.mode & 1) || - (0 !== value && 11 !== value && 15 !== value) || - ((value = sourceFiber.alternate) - ? ((sourceFiber.updateQueue = value.updateQueue), - (sourceFiber.memoizedState = value.memoizedState), - (sourceFiber.lanes = value.lanes)) + (0 !== tag && 11 !== tag && 15 !== tag) || + ((tag = sourceFiber.alternate) + ? ((sourceFiber.updateQueue = tag.updateQueue), + (sourceFiber.memoizedState = tag.memoizedState), + (sourceFiber.lanes = tag.lanes)) : ((sourceFiber.updateQueue = null), (sourceFiber.memoizedState = null))); - value = suspenseHandlerStackCursor.current; - if (null !== value) { - switch (value.tag) { + tag = suspenseHandlerStackCursor.current; + if (null !== tag) { + switch (tag.tag) { case 13: return ( sourceFiber.mode & 1 && (null === shellBoundary ? renderDidSuspendDelayIfPossible() - : null === value.alternate && + : null === tag.alternate && 0 === workInProgressRootExitStatus && (workInProgressRootExitStatus = 3)), - (value.flags &= -257), - 0 === (value.mode & 1) - ? value === returnFiber - ? (value.flags |= 65536) - : ((value.flags |= 128), + (tag.flags &= -257), + 0 === (tag.mode & 1) + ? tag === returnFiber + ? (tag.flags |= 65536) + : ((tag.flags |= 128), (sourceFiber.flags |= 131072), (sourceFiber.flags &= -52805), 1 === sourceFiber.tag @@ -5437,48 +5432,48 @@ function throwException( null === sourceFiber.alternate && (sourceFiber.tag = 28), (sourceFiber.lanes |= 2)) - : ((value.flags |= 65536), (value.lanes = rootRenderLanes)), - wakeable === noopSuspenseyCommitThenable - ? (value.flags |= 16384) - : ((returnFiber = value.updateQueue), + : ((tag.flags |= 65536), (tag.lanes = rootRenderLanes)), + value === noopSuspenseyCommitThenable + ? (tag.flags |= 16384) + : ((returnFiber = tag.updateQueue), null === returnFiber - ? (value.updateQueue = new Set([wakeable])) - : returnFiber.add(wakeable), - value.mode & 1 && - attachPingListener(root, wakeable, rootRenderLanes)), + ? (tag.updateQueue = new Set([value])) + : returnFiber.add(value), + tag.mode & 1 && + attachPingListener(root, value, rootRenderLanes)), !1 ); case 22: - if (value.mode & 1) + if (tag.mode & 1) return ( - (value.flags |= 65536), - wakeable === noopSuspenseyCommitThenable - ? (value.flags |= 16384) - : ((returnFiber = value.updateQueue), + (tag.flags |= 65536), + value === noopSuspenseyCommitThenable + ? (tag.flags |= 16384) + : ((returnFiber = tag.updateQueue), null === returnFiber ? ((returnFiber = { transitions: null, markerInstances: null, - retryQueue: new Set([wakeable]) + retryQueue: new Set([value]) }), - (value.updateQueue = returnFiber)) + (tag.updateQueue = returnFiber)) : ((sourceFiber = returnFiber.retryQueue), null === sourceFiber - ? (returnFiber.retryQueue = new Set([wakeable])) - : sourceFiber.add(wakeable)), - attachPingListener(root, wakeable, rootRenderLanes)), + ? (returnFiber.retryQueue = new Set([value])) + : sourceFiber.add(value)), + attachPingListener(root, value, rootRenderLanes)), !1 ); } throw Error( "Unexpected Suspense handler tag (" + - value.tag + + tag.tag + "). This is a bug in React." ); } if (1 === root.tag) return ( - attachPingListener(root, wakeable, rootRenderLanes), + attachPingListener(root, value, rootRenderLanes), renderDidSuspendDelayIfPossible(), !1 ); @@ -5486,58 +5481,58 @@ function throwException( "A component suspended while responding to synchronous input. This will cause the UI to be replaced with a loading indicator. To fix, updates that suspend should be wrapped with startTransition." ); } - wakeable = value = createCapturedValueAtFiber(value, sourceFiber); - 4 !== workInProgressRootExitStatus && (workInProgressRootExitStatus = 2); + tag = createCapturedValueAtFiber( + Error( + "There was an error during concurrent rendering but React was able to recover by instead synchronously rendering the entire root.", + { cause: value } + ), + sourceFiber + ); null === workInProgressRootConcurrentErrors - ? (workInProgressRootConcurrentErrors = [wakeable]) - : workInProgressRootConcurrentErrors.push(wakeable); + ? (workInProgressRootConcurrentErrors = [tag]) + : workInProgressRootConcurrentErrors.push(tag); + 4 !== workInProgressRootExitStatus && (workInProgressRootExitStatus = 2); if (null === returnFiber) return !0; - wakeable = returnFiber; + value = createCapturedValueAtFiber(value, sourceFiber); do { - switch (wakeable.tag) { + switch (returnFiber.tag) { case 3: return ( - (root = value), - (wakeable.flags |= 65536), - (rootRenderLanes &= -rootRenderLanes), - (wakeable.lanes |= rootRenderLanes), - (root = createRootErrorUpdate( - wakeable.stateNode, - root, - rootRenderLanes - )), - enqueueCapturedUpdate(wakeable, root), + (returnFiber.flags |= 65536), + (root = rootRenderLanes & -rootRenderLanes), + (returnFiber.lanes |= root), + (root = createRootErrorUpdate(returnFiber.stateNode, value, root)), + enqueueCapturedUpdate(returnFiber, root), !1 ); case 1: - returnFiber = value; - sourceFiber = wakeable.type; - var instance = wakeable.stateNode; if ( - 0 === (wakeable.flags & 128) && - ("function" === typeof sourceFiber.getDerivedStateFromError || - (null !== instance && - "function" === typeof instance.componentDidCatch && - (null === legacyErrorBoundariesThatAlreadyFailed || - !legacyErrorBoundariesThatAlreadyFailed.has(instance)))) + ((sourceFiber = returnFiber.type), + (tag = returnFiber.stateNode), + 0 === (returnFiber.flags & 128) && + ("function" === typeof sourceFiber.getDerivedStateFromError || + (null !== tag && + "function" === typeof tag.componentDidCatch && + (null === legacyErrorBoundariesThatAlreadyFailed || + !legacyErrorBoundariesThatAlreadyFailed.has(tag))))) ) return ( - (wakeable.flags |= 65536), + (returnFiber.flags |= 65536), (rootRenderLanes &= -rootRenderLanes), - (wakeable.lanes |= rootRenderLanes), + (returnFiber.lanes |= rootRenderLanes), (rootRenderLanes = createClassErrorUpdate(rootRenderLanes)), initializeClassErrorUpdate( rootRenderLanes, root, - wakeable, - returnFiber + returnFiber, + value ), - enqueueCapturedUpdate(wakeable, rootRenderLanes), + enqueueCapturedUpdate(returnFiber, rootRenderLanes), !1 ); } - wakeable = wakeable.return; - } while (null !== wakeable); + returnFiber = returnFiber.return; + } while (null !== returnFiber); return !1; } var ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner, @@ -6166,17 +6161,10 @@ function updateSuspenseComponent(current, workInProgress, renderLanes) { workInProgress.flags & 256 ? (pushPrimaryTreeSuspenseHandler(workInProgress), (workInProgress.flags &= -257), - (JSCompiler_temp = createCapturedValueFromError( - Error( - "There was an error while hydrating this Suspense boundary. Switched to client rendering." - ), - null - )), (workInProgress = retrySuspenseComponentWithoutHydrating( current, workInProgress, - renderLanes, - JSCompiler_temp + renderLanes ))) : null !== workInProgress.memoizedState ? (reuseSuspenseHandlerOnStack(workInProgress), @@ -6226,12 +6214,14 @@ function updateSuspenseComponent(current, workInProgress, renderLanes) { )), (nextProps.stack = ""), (nextProps.digest = JSCompiler_temp), - (JSCompiler_temp = createCapturedValueFromError(nextProps, null)), + (JSCompiler_temp = { value: nextProps, source: null, stack: null }), + null === hydrationErrors + ? (hydrationErrors = [JSCompiler_temp]) + : hydrationErrors.push(JSCompiler_temp), (workInProgress = retrySuspenseComponentWithoutHydrating( current, workInProgress, - renderLanes, - JSCompiler_temp + renderLanes )); else if ( ((JSCompiler_temp = 0 !== (renderLanes & current.childLanes)), @@ -6296,8 +6286,7 @@ function updateSuspenseComponent(current, workInProgress, renderLanes) { workInProgress = retrySuspenseComponentWithoutHydrating( current, workInProgress, - renderLanes, - null + renderLanes ); } else shim$1() @@ -6444,13 +6433,8 @@ function mountSuspenseFallbackChildren( function retrySuspenseComponentWithoutHydrating( current, workInProgress, - renderLanes, - recoverableError + renderLanes ) { - null !== recoverableError && - (null === hydrationErrors - ? (hydrationErrors = [recoverableError]) - : hydrationErrors.push(recoverableError)); reconcileChildFibers(workInProgress, current.child, null, renderLanes); current = mountSuspensePrimaryChildren( workInProgress, @@ -7448,14 +7432,14 @@ function cutOffTailIfNeeded(renderState, hasRenderedATailFallback) { break; case "collapsed": lastTailNode = renderState.tail; - for (var lastTailNode$81 = null; null !== lastTailNode; ) - null !== lastTailNode.alternate && (lastTailNode$81 = lastTailNode), + for (var lastTailNode$79 = null; null !== lastTailNode; ) + null !== lastTailNode.alternate && (lastTailNode$79 = lastTailNode), (lastTailNode = lastTailNode.sibling); - null === lastTailNode$81 + null === lastTailNode$79 ? hasRenderedATailFallback || null === renderState.tail ? (renderState.tail = null) : (renderState.tail.sibling = null) - : (lastTailNode$81.sibling = null); + : (lastTailNode$79.sibling = null); } } function bubbleProperties(completedWork) { @@ -7467,53 +7451,53 @@ function bubbleProperties(completedWork) { if (didBailout) if (0 !== (completedWork.mode & 2)) { for ( - var treeBaseDuration$83 = completedWork.selfBaseDuration, - child$84 = completedWork.child; - null !== child$84; + var treeBaseDuration$81 = completedWork.selfBaseDuration, + child$82 = completedWork.child; + null !== child$82; ) - (newChildLanes |= child$84.lanes | child$84.childLanes), - (subtreeFlags |= child$84.subtreeFlags & 31457280), - (subtreeFlags |= child$84.flags & 31457280), - (treeBaseDuration$83 += child$84.treeBaseDuration), - (child$84 = child$84.sibling); - completedWork.treeBaseDuration = treeBaseDuration$83; + (newChildLanes |= child$82.lanes | child$82.childLanes), + (subtreeFlags |= child$82.subtreeFlags & 31457280), + (subtreeFlags |= child$82.flags & 31457280), + (treeBaseDuration$81 += child$82.treeBaseDuration), + (child$82 = child$82.sibling); + completedWork.treeBaseDuration = treeBaseDuration$81; } else for ( - treeBaseDuration$83 = completedWork.child; - null !== treeBaseDuration$83; + treeBaseDuration$81 = completedWork.child; + null !== treeBaseDuration$81; ) (newChildLanes |= - treeBaseDuration$83.lanes | treeBaseDuration$83.childLanes), - (subtreeFlags |= treeBaseDuration$83.subtreeFlags & 31457280), - (subtreeFlags |= treeBaseDuration$83.flags & 31457280), - (treeBaseDuration$83.return = completedWork), - (treeBaseDuration$83 = treeBaseDuration$83.sibling); + treeBaseDuration$81.lanes | treeBaseDuration$81.childLanes), + (subtreeFlags |= treeBaseDuration$81.subtreeFlags & 31457280), + (subtreeFlags |= treeBaseDuration$81.flags & 31457280), + (treeBaseDuration$81.return = completedWork), + (treeBaseDuration$81 = treeBaseDuration$81.sibling); else if (0 !== (completedWork.mode & 2)) { - treeBaseDuration$83 = completedWork.actualDuration; - child$84 = completedWork.selfBaseDuration; + treeBaseDuration$81 = completedWork.actualDuration; + child$82 = completedWork.selfBaseDuration; for (var child = completedWork.child; null !== child; ) (newChildLanes |= child.lanes | child.childLanes), (subtreeFlags |= child.subtreeFlags), (subtreeFlags |= child.flags), - (treeBaseDuration$83 += child.actualDuration), - (child$84 += child.treeBaseDuration), + (treeBaseDuration$81 += child.actualDuration), + (child$82 += child.treeBaseDuration), (child = child.sibling); - completedWork.actualDuration = treeBaseDuration$83; - completedWork.treeBaseDuration = child$84; + completedWork.actualDuration = treeBaseDuration$81; + completedWork.treeBaseDuration = child$82; } else for ( - treeBaseDuration$83 = completedWork.child; - null !== treeBaseDuration$83; + treeBaseDuration$81 = completedWork.child; + null !== treeBaseDuration$81; ) (newChildLanes |= - treeBaseDuration$83.lanes | treeBaseDuration$83.childLanes), - (subtreeFlags |= treeBaseDuration$83.subtreeFlags), - (subtreeFlags |= treeBaseDuration$83.flags), - (treeBaseDuration$83.return = completedWork), - (treeBaseDuration$83 = treeBaseDuration$83.sibling); + treeBaseDuration$81.lanes | treeBaseDuration$81.childLanes), + (subtreeFlags |= treeBaseDuration$81.subtreeFlags), + (subtreeFlags |= treeBaseDuration$81.flags), + (treeBaseDuration$81.return = completedWork), + (treeBaseDuration$81 = treeBaseDuration$81.sibling); completedWork.subtreeFlags |= subtreeFlags; completedWork.childLanes = newChildLanes; return didBailout; @@ -8126,8 +8110,8 @@ function safelyDetachRef(current, nearestMountedAncestor) { recordLayoutEffectDuration(current); } else ref(null); - } catch (error$109) { - captureCommitPhaseError(current, nearestMountedAncestor, error$109); + } catch (error$107) { + captureCommitPhaseError(current, nearestMountedAncestor, error$107); } else ref.current = null; } @@ -8261,10 +8245,10 @@ function commitHookEffectListMount(flags, finishedWork) { injectedProfilingHooks.markComponentLayoutEffectMountStarted( finishedWork ); - var create$110 = effect.create, + var create$108 = effect.create, inst = effect.inst; - create$110 = create$110(); - inst.destroy = create$110; + create$108 = create$108(); + inst.destroy = create$108; 0 !== (flags & 8) ? null !== injectedProfilingHooks && "function" === @@ -8292,8 +8276,8 @@ function commitHookLayoutEffects(finishedWork, hookFlags) { } else try { commitHookEffectListMount(hookFlags, finishedWork); - } catch (error$112) { - captureCommitPhaseError(finishedWork, finishedWork.return, error$112); + } catch (error$110) { + captureCommitPhaseError(finishedWork, finishedWork.return, error$110); } } function commitClassCallbacks(finishedWork) { @@ -8382,11 +8366,11 @@ function commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) { } else try { finishedRoot.componentDidMount(); - } catch (error$113) { + } catch (error$111) { captureCommitPhaseError( finishedWork, finishedWork.return, - error$113 + error$111 ); } else { @@ -8404,11 +8388,11 @@ function commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) { current, finishedRoot.__reactInternalSnapshotBeforeUpdate ); - } catch (error$114) { + } catch (error$112) { captureCommitPhaseError( finishedWork, finishedWork.return, - error$114 + error$112 ); } recordLayoutEffectDuration(finishedWork); @@ -8419,11 +8403,11 @@ function commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) { current, finishedRoot.__reactInternalSnapshotBeforeUpdate ); - } catch (error$115) { + } catch (error$113) { captureCommitPhaseError( finishedWork, finishedWork.return, - error$115 + error$113 ); } } @@ -8744,22 +8728,22 @@ function commitMutationEffectsOnFiber(finishedWork, root) { try { startLayoutEffectTimer(), commitHookEffectListUnmount(5, finishedWork, finishedWork.return); - } catch (error$118) { + } catch (error$116) { captureCommitPhaseError( finishedWork, finishedWork.return, - error$118 + error$116 ); } recordLayoutEffectDuration(finishedWork); } else try { commitHookEffectListUnmount(5, finishedWork, finishedWork.return); - } catch (error$119) { + } catch (error$117) { captureCommitPhaseError( finishedWork, finishedWork.return, - error$119 + error$117 ); } } @@ -9056,8 +9040,8 @@ function commitHookPassiveMountEffects(finishedWork, hookFlags) { } else try { commitHookEffectListMount(hookFlags, finishedWork); - } catch (error$127) { - captureCommitPhaseError(finishedWork, finishedWork.return, error$127); + } catch (error$125) { + captureCommitPhaseError(finishedWork, finishedWork.return, error$125); } } function commitOffscreenPassiveMountEffects(current, finishedWork) { @@ -10087,8 +10071,8 @@ function renderRootSync(root, lanes) { } workLoopSync(); break; - } catch (thrownValue$132) { - handleThrow(root, thrownValue$132); + } catch (thrownValue$130) { + handleThrow(root, thrownValue$130); } while (1); lanes && root.shellSuspendCounter++; @@ -10207,8 +10191,8 @@ function renderRootConcurrent(root, lanes) { } workLoopConcurrent(); break; - } catch (thrownValue$134) { - handleThrow(root, thrownValue$134); + } catch (thrownValue$132) { + handleThrow(root, thrownValue$132); } while (1); resetContextDependencies(); @@ -10574,7 +10558,7 @@ function flushPassiveEffects() { _finishedWork$memoize = finishedWork.memoizedProps, id = _finishedWork$memoize.id, onPostCommit = _finishedWork$memoize.onPostCommit, - commitTime$111 = commitTime, + commitTime$109 = commitTime, phase = null === finishedWork.alternate ? "mount" : "update"; currentUpdateIsNested && (phase = "nested-update"); "function" === typeof onPostCommit && @@ -10582,7 +10566,7 @@ function flushPassiveEffects() { id, phase, passiveEffectDuration, - commitTime$111 + commitTime$109 ); var parentFiber = finishedWork.return; b: for (; null !== parentFiber; ) { @@ -11336,10 +11320,10 @@ batchedUpdatesImpl = function (fn, a) { } }; var roots = new Map(), - devToolsConfig$jscomp$inline_1182 = { + devToolsConfig$jscomp$inline_1178 = { findFiberByHostInstance: getInstanceFromNode, bundleType: 0, - version: "19.0.0-canary-d7696546", + version: "19.0.0-canary-4e2ae6ee", rendererPackageName: "react-native-renderer", rendererConfig: { getInspectorDataForInstance: getInspectorDataForInstance, @@ -11369,10 +11353,10 @@ var roots = new Map(), } catch (err) {} return hook.checkDCE ? !0 : !1; })({ - bundleType: devToolsConfig$jscomp$inline_1182.bundleType, - version: devToolsConfig$jscomp$inline_1182.version, - rendererPackageName: devToolsConfig$jscomp$inline_1182.rendererPackageName, - rendererConfig: devToolsConfig$jscomp$inline_1182.rendererConfig, + bundleType: devToolsConfig$jscomp$inline_1178.bundleType, + version: devToolsConfig$jscomp$inline_1178.version, + rendererPackageName: devToolsConfig$jscomp$inline_1178.rendererPackageName, + rendererConfig: devToolsConfig$jscomp$inline_1178.rendererConfig, overrideHookState: null, overrideHookStateDeletePath: null, overrideHookStateRenamePath: null, @@ -11388,14 +11372,14 @@ var roots = new Map(), return null === fiber ? null : fiber.stateNode; }, findFiberByHostInstance: - devToolsConfig$jscomp$inline_1182.findFiberByHostInstance || + devToolsConfig$jscomp$inline_1178.findFiberByHostInstance || emptyFindFiberByHostInstance, findHostInstancesForRefresh: null, scheduleRefresh: null, scheduleRoot: null, setRefreshHandler: null, getCurrentFiber: null, - reconcilerVersion: "19.0.0-canary-d7696546" + reconcilerVersion: "19.0.0-canary-4e2ae6ee" }); exports.createPortal = function (children, containerTag) { return createPortal$1( diff --git a/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js b/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js index ab146fef85..e2535d65a0 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js +++ b/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<> + * @generated SignedSource<<73d4b3e0decf43fb88c1de550d9bf8e3>> */ "use strict"; @@ -6319,6 +6319,430 @@ to return true:wantsResponderID| | var objectIs = typeof Object.is === "function" ? Object.is : is; // $FlowFixMe[method-unbinding] + var ReactCurrentDispatcher$2 = ReactSharedInternals.ReactCurrentDispatcher; + var prefix; + function describeBuiltInComponentFrame(name, ownerFn) { + if (enableComponentStackLocations) { + if (prefix === undefined) { + // Extract the VM specific prefix used by each line. + try { + throw Error(); + } catch (x) { + var match = x.stack.trim().match(/\n( *(at )?)/); + prefix = (match && match[1]) || ""; + } + } // We use the prefix to ensure our stacks line up with native stack frames. + + return "\n" + prefix + name; + } else { + var ownerName = null; + + if (ownerFn) { + ownerName = ownerFn.displayName || ownerFn.name || null; + } + + return describeComponentFrame(name, ownerName); + } + } + function describeDebugInfoFrame(name, env) { + return describeBuiltInComponentFrame( + name + (env ? " (" + env + ")" : ""), + null + ); + } + var reentry = false; + var componentFrameCache; + + { + var PossiblyWeakMap$1 = typeof WeakMap === "function" ? WeakMap : Map; + componentFrameCache = new PossiblyWeakMap$1(); + } + /** + * Leverages native browser/VM stack frames to get proper details (e.g. + * filename, line + col number) for a single component in a component stack. We + * do this by: + * (1) throwing and catching an error in the function - this will be our + * control error. + * (2) calling the component which will eventually throw an error that we'll + * catch - this will be our sample error. + * (3) diffing the control and sample error stacks to find the stack frame + * which represents our component. + */ + + function describeNativeComponentFrame(fn, construct) { + // If something asked for a stack inside a fake render, it should get ignored. + if (!fn || reentry) { + return ""; + } + + { + var frame = componentFrameCache.get(fn); + + if (frame !== undefined) { + return frame; + } + } + + reentry = true; + var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe[incompatible-type] It does accept undefined. + + Error.prepareStackTrace = undefined; + var previousDispatcher; + + { + previousDispatcher = ReactCurrentDispatcher$2.current; // Set the dispatcher in DEV because this might be call in the render function + // for warnings. + + ReactCurrentDispatcher$2.current = null; + disableLogs(); + } + /** + * Finding a common stack frame between sample and control errors can be + * tricky given the different types and levels of stack trace truncation from + * different JS VMs. So instead we'll attempt to control what that common + * frame should be through this object method: + * Having both the sample and control errors be in the function under the + * `DescribeNativeComponentFrameRoot` property, + setting the `name` and + * `displayName` properties of the function ensures that a stack + * frame exists that has the method name `DescribeNativeComponentFrameRoot` in + * it for both control and sample stacks. + */ + + var RunInRootFrame = { + DetermineComponentFrameRoot: function () { + var control; + + try { + // This should throw. + if (construct) { + // Something should be setting the props in the constructor. + var Fake = function () { + throw Error(); + }; // $FlowFixMe[prop-missing] + + Object.defineProperty(Fake.prototype, "props", { + set: function () { + // We use a throwing setter instead of frozen or non-writable props + // because that won't throw in a non-strict mode function. + throw Error(); + } + }); + + if (typeof Reflect === "object" && Reflect.construct) { + // We construct a different control for this case to include any extra + // frames added by the construct call. + try { + Reflect.construct(Fake, []); + } catch (x) { + control = x; + } + + Reflect.construct(fn, [], Fake); + } else { + try { + Fake.call(); + } catch (x) { + control = x; + } // $FlowFixMe[prop-missing] found when upgrading Flow + + fn.call(Fake.prototype); + } + } else { + try { + throw Error(); + } catch (x) { + control = x; + } // TODO(luna): This will currently only throw if the function component + // tries to access React/ReactDOM/props. We should probably make this throw + // in simple components too + + var maybePromise = fn(); // If the function component returns a promise, it's likely an async + // component, which we don't yet support. Attach a noop catch handler to + // silence the error. + // TODO: Implement component stacks for async client components? + + if (maybePromise && typeof maybePromise.catch === "function") { + maybePromise.catch(function () {}); + } + } + } catch (sample) { + // This is inlined manually because closure doesn't do it for us. + if (sample && control && typeof sample.stack === "string") { + return [sample.stack, control.stack]; + } + } + + return [null, null]; + } + }; // $FlowFixMe[prop-missing] + + RunInRootFrame.DetermineComponentFrameRoot.displayName = + "DetermineComponentFrameRoot"; + var namePropDescriptor = Object.getOwnPropertyDescriptor( + RunInRootFrame.DetermineComponentFrameRoot, + "name" + ); // Before ES6, the `name` property was not configurable. + + if (namePropDescriptor && namePropDescriptor.configurable) { + // V8 utilizes a function's `name` property when generating a stack trace. + Object.defineProperty( + RunInRootFrame.DetermineComponentFrameRoot, // Configurable properties can be updated even if its writable descriptor + // is set to `false`. + // $FlowFixMe[cannot-write] + "name", + { + value: "DetermineComponentFrameRoot" + } + ); + } + + try { + var _RunInRootFrame$Deter = + RunInRootFrame.DetermineComponentFrameRoot(), + sampleStack = _RunInRootFrame$Deter[0], + controlStack = _RunInRootFrame$Deter[1]; + + if (sampleStack && controlStack) { + // This extracts the first frame from the sample that isn't also in the control. + // Skipping one frame that we assume is the frame that calls the two. + var sampleLines = sampleStack.split("\n"); + var controlLines = controlStack.split("\n"); + var s = 0; + var c = 0; + + while ( + s < sampleLines.length && + !sampleLines[s].includes("DetermineComponentFrameRoot") + ) { + s++; + } + + while ( + c < controlLines.length && + !controlLines[c].includes("DetermineComponentFrameRoot") + ) { + c++; + } // We couldn't find our intentionally injected common root frame, attempt + // to find another common root frame by search from the bottom of the + // control stack... + + if (s === sampleLines.length || c === controlLines.length) { + s = sampleLines.length - 1; + c = controlLines.length - 1; + + while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) { + // We expect at least one stack frame to be shared. + // Typically this will be the root most one. However, stack frames may be + // cut off due to maximum stack limits. In this case, one maybe cut off + // earlier than the other. We assume that the sample is longer or the same + // and there for cut off earlier. So we should find the root most frame in + // the sample somewhere in the control. + c--; + } + } + + for (; s >= 1 && c >= 0; s--, c--) { + // Next we find the first one that isn't the same which should be the + // frame that called our sample function and the control. + if (sampleLines[s] !== controlLines[c]) { + // In V8, the first line is describing the message but other VMs don't. + // If we're about to return the first line, and the control is also on the same + // line, that's a pretty good indicator that our sample threw at same line as + // the control. I.e. before we entered the sample frame. So we ignore this result. + // This can happen if you passed a class to function component, or non-function. + if (s !== 1 || c !== 1) { + do { + s--; + c--; // We may still have similar intermediate frames from the construct call. + // The next one that isn't the same should be our match though. + + if (c < 0 || sampleLines[s] !== controlLines[c]) { + // V8 adds a "new" prefix for native classes. Let's remove it to make it prettier. + var _frame = + "\n" + sampleLines[s].replace(" at new ", " at "); // If our component frame is labeled "" + // but we have a user-provided "displayName" + // splice it in to make the stack more readable. + + if (fn.displayName && _frame.includes("")) { + _frame = _frame.replace("", fn.displayName); + } + + if (true) { + if (typeof fn === "function") { + componentFrameCache.set(fn, _frame); + } + } // Return the line we found. + + return _frame; + } + } while (s >= 1 && c >= 0); + } + + break; + } + } + } + } finally { + reentry = false; + + { + ReactCurrentDispatcher$2.current = previousDispatcher; + reenableLogs(); + } + + Error.prepareStackTrace = previousPrepareStackTrace; + } // Fallback to just using the name if we couldn't make it throw. + + var name = fn ? fn.displayName || fn.name : ""; + var syntheticFrame = name ? describeBuiltInComponentFrame(name) : ""; + + { + if (typeof fn === "function") { + componentFrameCache.set(fn, syntheticFrame); + } + } + + return syntheticFrame; + } + + function describeComponentFrame(name, ownerName) { + var sourceInfo = ""; + + if (ownerName) { + sourceInfo = " (created by " + ownerName + ")"; + } + + return "\n in " + (name || "Unknown") + sourceInfo; + } + + function describeClassComponentFrame(ctor, ownerFn) { + if (enableComponentStackLocations) { + return describeNativeComponentFrame(ctor, true); + } else { + return describeFunctionComponentFrame(ctor, ownerFn); + } + } + function describeFunctionComponentFrame(fn, ownerFn) { + if (enableComponentStackLocations) { + return describeNativeComponentFrame(fn, false); + } else { + if (!fn) { + return ""; + } + + var name = fn.displayName || fn.name || null; + var ownerName = null; + + if (ownerFn) { + ownerName = ownerFn.displayName || ownerFn.name || null; + } + + return describeComponentFrame(name, ownerName); + } + } + + function describeFiber(fiber) { + var owner = fiber._debugOwner ? fiber._debugOwner.type : null; + + switch (fiber.tag) { + case HostHoistable: + case HostSingleton: + case HostComponent: + return describeBuiltInComponentFrame(fiber.type, owner); + + case LazyComponent: + return describeBuiltInComponentFrame("Lazy", owner); + + case SuspenseComponent: + return describeBuiltInComponentFrame("Suspense", owner); + + case SuspenseListComponent: + return describeBuiltInComponentFrame("SuspenseList", owner); + + case FunctionComponent: + case SimpleMemoComponent: + return describeFunctionComponentFrame(fiber.type, owner); + + case ForwardRef: + return describeFunctionComponentFrame(fiber.type.render, owner); + + case ClassComponent: + return describeClassComponentFrame(fiber.type, owner); + + default: + return ""; + } + } + + function getStackByFiberInDevAndProd(workInProgress) { + try { + var info = ""; + var node = workInProgress; + + do { + info += describeFiber(node); + + if (true) { + // Add any Server Component stack frames in reverse order. + var debugInfo = node._debugInfo; + + if (debugInfo) { + for (var i = debugInfo.length - 1; i >= 0; i--) { + var entry = debugInfo[i]; + + if (typeof entry.name === "string") { + info += describeDebugInfoFrame(entry.name, entry.env); + } + } + } + } // $FlowFixMe[incompatible-type] we bail out when we get a null + + node = node.return; + } while (node); + + return info; + } catch (x) { + return "\nError generating stack: " + x.message + "\n" + x.stack; + } + } + + var CapturedStacks = new WeakMap(); + function createCapturedValueAtFiber(value, source) { + // If the value is an error, call this function immediately after it is thrown + // so the stack is accurate. + var stack; + + if (typeof value === "object" && value !== null) { + var capturedStack = CapturedStacks.get(value); + + if (typeof capturedStack === "string") { + stack = capturedStack; + } else { + stack = getStackByFiberInDevAndProd(source); + CapturedStacks.set(value, stack); + } + } else { + stack = getStackByFiberInDevAndProd(source); + } + + return { + value: value, + source: source, + stack: stack + }; + } + function createCapturedValueFromError(value, stack) { + if (typeof stack === "string") { + CapturedStacks.set(value, stack); + } + + return { + value: value, + source: null, + stack: stack + }; + } + var contextStackCursor = createCursor(null); var contextFiberStackCursor = createCursor(null); var rootInstanceStackCursor = createCursor(null); // Represents the nearest host transition provider (in React DOM, a ) @@ -8543,393 +8967,6 @@ to return true:wantsResponderID| | return true; } - var ReactCurrentDispatcher$2 = ReactSharedInternals.ReactCurrentDispatcher; - var prefix; - function describeBuiltInComponentFrame(name, ownerFn) { - if (enableComponentStackLocations) { - if (prefix === undefined) { - // Extract the VM specific prefix used by each line. - try { - throw Error(); - } catch (x) { - var match = x.stack.trim().match(/\n( *(at )?)/); - prefix = (match && match[1]) || ""; - } - } // We use the prefix to ensure our stacks line up with native stack frames. - - return "\n" + prefix + name; - } else { - var ownerName = null; - - if (ownerFn) { - ownerName = ownerFn.displayName || ownerFn.name || null; - } - - return describeComponentFrame(name, ownerName); - } - } - function describeDebugInfoFrame(name, env) { - return describeBuiltInComponentFrame( - name + (env ? " (" + env + ")" : ""), - null - ); - } - var reentry = false; - var componentFrameCache; - - { - var PossiblyWeakMap$1 = typeof WeakMap === "function" ? WeakMap : Map; - componentFrameCache = new PossiblyWeakMap$1(); - } - /** - * Leverages native browser/VM stack frames to get proper details (e.g. - * filename, line + col number) for a single component in a component stack. We - * do this by: - * (1) throwing and catching an error in the function - this will be our - * control error. - * (2) calling the component which will eventually throw an error that we'll - * catch - this will be our sample error. - * (3) diffing the control and sample error stacks to find the stack frame - * which represents our component. - */ - - function describeNativeComponentFrame(fn, construct) { - // If something asked for a stack inside a fake render, it should get ignored. - if (!fn || reentry) { - return ""; - } - - { - var frame = componentFrameCache.get(fn); - - if (frame !== undefined) { - return frame; - } - } - - reentry = true; - var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe[incompatible-type] It does accept undefined. - - Error.prepareStackTrace = undefined; - var previousDispatcher; - - { - previousDispatcher = ReactCurrentDispatcher$2.current; // Set the dispatcher in DEV because this might be call in the render function - // for warnings. - - ReactCurrentDispatcher$2.current = null; - disableLogs(); - } - /** - * Finding a common stack frame between sample and control errors can be - * tricky given the different types and levels of stack trace truncation from - * different JS VMs. So instead we'll attempt to control what that common - * frame should be through this object method: - * Having both the sample and control errors be in the function under the - * `DescribeNativeComponentFrameRoot` property, + setting the `name` and - * `displayName` properties of the function ensures that a stack - * frame exists that has the method name `DescribeNativeComponentFrameRoot` in - * it for both control and sample stacks. - */ - - var RunInRootFrame = { - DetermineComponentFrameRoot: function () { - var control; - - try { - // This should throw. - if (construct) { - // Something should be setting the props in the constructor. - var Fake = function () { - throw Error(); - }; // $FlowFixMe[prop-missing] - - Object.defineProperty(Fake.prototype, "props", { - set: function () { - // We use a throwing setter instead of frozen or non-writable props - // because that won't throw in a non-strict mode function. - throw Error(); - } - }); - - if (typeof Reflect === "object" && Reflect.construct) { - // We construct a different control for this case to include any extra - // frames added by the construct call. - try { - Reflect.construct(Fake, []); - } catch (x) { - control = x; - } - - Reflect.construct(fn, [], Fake); - } else { - try { - Fake.call(); - } catch (x) { - control = x; - } // $FlowFixMe[prop-missing] found when upgrading Flow - - fn.call(Fake.prototype); - } - } else { - try { - throw Error(); - } catch (x) { - control = x; - } // TODO(luna): This will currently only throw if the function component - // tries to access React/ReactDOM/props. We should probably make this throw - // in simple components too - - var maybePromise = fn(); // If the function component returns a promise, it's likely an async - // component, which we don't yet support. Attach a noop catch handler to - // silence the error. - // TODO: Implement component stacks for async client components? - - if (maybePromise && typeof maybePromise.catch === "function") { - maybePromise.catch(function () {}); - } - } - } catch (sample) { - // This is inlined manually because closure doesn't do it for us. - if (sample && control && typeof sample.stack === "string") { - return [sample.stack, control.stack]; - } - } - - return [null, null]; - } - }; // $FlowFixMe[prop-missing] - - RunInRootFrame.DetermineComponentFrameRoot.displayName = - "DetermineComponentFrameRoot"; - var namePropDescriptor = Object.getOwnPropertyDescriptor( - RunInRootFrame.DetermineComponentFrameRoot, - "name" - ); // Before ES6, the `name` property was not configurable. - - if (namePropDescriptor && namePropDescriptor.configurable) { - // V8 utilizes a function's `name` property when generating a stack trace. - Object.defineProperty( - RunInRootFrame.DetermineComponentFrameRoot, // Configurable properties can be updated even if its writable descriptor - // is set to `false`. - // $FlowFixMe[cannot-write] - "name", - { - value: "DetermineComponentFrameRoot" - } - ); - } - - try { - var _RunInRootFrame$Deter = - RunInRootFrame.DetermineComponentFrameRoot(), - sampleStack = _RunInRootFrame$Deter[0], - controlStack = _RunInRootFrame$Deter[1]; - - if (sampleStack && controlStack) { - // This extracts the first frame from the sample that isn't also in the control. - // Skipping one frame that we assume is the frame that calls the two. - var sampleLines = sampleStack.split("\n"); - var controlLines = controlStack.split("\n"); - var s = 0; - var c = 0; - - while ( - s < sampleLines.length && - !sampleLines[s].includes("DetermineComponentFrameRoot") - ) { - s++; - } - - while ( - c < controlLines.length && - !controlLines[c].includes("DetermineComponentFrameRoot") - ) { - c++; - } // We couldn't find our intentionally injected common root frame, attempt - // to find another common root frame by search from the bottom of the - // control stack... - - if (s === sampleLines.length || c === controlLines.length) { - s = sampleLines.length - 1; - c = controlLines.length - 1; - - while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) { - // We expect at least one stack frame to be shared. - // Typically this will be the root most one. However, stack frames may be - // cut off due to maximum stack limits. In this case, one maybe cut off - // earlier than the other. We assume that the sample is longer or the same - // and there for cut off earlier. So we should find the root most frame in - // the sample somewhere in the control. - c--; - } - } - - for (; s >= 1 && c >= 0; s--, c--) { - // Next we find the first one that isn't the same which should be the - // frame that called our sample function and the control. - if (sampleLines[s] !== controlLines[c]) { - // In V8, the first line is describing the message but other VMs don't. - // If we're about to return the first line, and the control is also on the same - // line, that's a pretty good indicator that our sample threw at same line as - // the control. I.e. before we entered the sample frame. So we ignore this result. - // This can happen if you passed a class to function component, or non-function. - if (s !== 1 || c !== 1) { - do { - s--; - c--; // We may still have similar intermediate frames from the construct call. - // The next one that isn't the same should be our match though. - - if (c < 0 || sampleLines[s] !== controlLines[c]) { - // V8 adds a "new" prefix for native classes. Let's remove it to make it prettier. - var _frame = - "\n" + sampleLines[s].replace(" at new ", " at "); // If our component frame is labeled "" - // but we have a user-provided "displayName" - // splice it in to make the stack more readable. - - if (fn.displayName && _frame.includes("")) { - _frame = _frame.replace("", fn.displayName); - } - - if (true) { - if (typeof fn === "function") { - componentFrameCache.set(fn, _frame); - } - } // Return the line we found. - - return _frame; - } - } while (s >= 1 && c >= 0); - } - - break; - } - } - } - } finally { - reentry = false; - - { - ReactCurrentDispatcher$2.current = previousDispatcher; - reenableLogs(); - } - - Error.prepareStackTrace = previousPrepareStackTrace; - } // Fallback to just using the name if we couldn't make it throw. - - var name = fn ? fn.displayName || fn.name : ""; - var syntheticFrame = name ? describeBuiltInComponentFrame(name) : ""; - - { - if (typeof fn === "function") { - componentFrameCache.set(fn, syntheticFrame); - } - } - - return syntheticFrame; - } - - function describeComponentFrame(name, ownerName) { - var sourceInfo = ""; - - if (ownerName) { - sourceInfo = " (created by " + ownerName + ")"; - } - - return "\n in " + (name || "Unknown") + sourceInfo; - } - - function describeClassComponentFrame(ctor, ownerFn) { - if (enableComponentStackLocations) { - return describeNativeComponentFrame(ctor, true); - } else { - return describeFunctionComponentFrame(ctor, ownerFn); - } - } - function describeFunctionComponentFrame(fn, ownerFn) { - if (enableComponentStackLocations) { - return describeNativeComponentFrame(fn, false); - } else { - if (!fn) { - return ""; - } - - var name = fn.displayName || fn.name || null; - var ownerName = null; - - if (ownerFn) { - ownerName = ownerFn.displayName || ownerFn.name || null; - } - - return describeComponentFrame(name, ownerName); - } - } - - function describeFiber(fiber) { - var owner = fiber._debugOwner ? fiber._debugOwner.type : null; - - switch (fiber.tag) { - case HostHoistable: - case HostSingleton: - case HostComponent: - return describeBuiltInComponentFrame(fiber.type, owner); - - case LazyComponent: - return describeBuiltInComponentFrame("Lazy", owner); - - case SuspenseComponent: - return describeBuiltInComponentFrame("Suspense", owner); - - case SuspenseListComponent: - return describeBuiltInComponentFrame("SuspenseList", owner); - - case FunctionComponent: - case SimpleMemoComponent: - return describeFunctionComponentFrame(fiber.type, owner); - - case ForwardRef: - return describeFunctionComponentFrame(fiber.type.render, owner); - - case ClassComponent: - return describeClassComponentFrame(fiber.type, owner); - - default: - return ""; - } - } - - function getStackByFiberInDevAndProd(workInProgress) { - try { - var info = ""; - var node = workInProgress; - - do { - info += describeFiber(node); - - if (true) { - // Add any Server Component stack frames in reverse order. - var debugInfo = node._debugInfo; - - if (debugInfo) { - for (var i = debugInfo.length - 1; i >= 0; i--) { - var entry = debugInfo[i]; - - if (typeof entry.name === "string") { - info += describeDebugInfoFrame(entry.name, entry.env); - } - } - } - } // $FlowFixMe[incompatible-type] we bail out when we get a null - - node = node.return; - } while (node); - - return info; - } catch (x) { - return "\nError generating stack: " + x.message + "\n" + x.stack; - } - } - var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame; var current = null; var isRendering = false; @@ -17038,43 +17075,6 @@ to return true:wantsResponderID| | return baseProps; } - var CapturedStacks = new WeakMap(); - function createCapturedValueAtFiber(value, source) { - // If the value is an error, call this function immediately after it is thrown - // so the stack is accurate. - var stack; - - if (typeof value === "object" && value !== null) { - var capturedStack = CapturedStacks.get(value); - - if (typeof capturedStack === "string") { - stack = capturedStack; - } else { - stack = getStackByFiberInDevAndProd(source); - CapturedStacks.set(value, stack); - } - } else { - stack = getStackByFiberInDevAndProd(source); - } - - return { - value: value, - source: source, - stack: stack - }; - } - function createCapturedValueFromError(value, stack) { - if (typeof stack === "string") { - CapturedStacks.set(value, stack); - } - - return { - value: value, - source: null, - stack: stack - }; - } - var reportGlobalError = typeof reportError === "function" // In modern browsers, reportError will dispatch an error event, ? // emulating an uncaught JavaScript error. @@ -17644,8 +17644,17 @@ to return true:wantsResponderID| | } } // This is a regular error, not a Suspense wakeable. - value = createCapturedValueAtFiber(value, sourceFiber); - renderDidError(value); // We didn't find a boundary that could handle this type of exception. Start + var wrapperError = new Error( + "There was an error during concurrent rendering but React was able to recover by " + + "instead synchronously rendering the entire root.", + { + cause: value + } + ); + queueConcurrentError( + createCapturedValueAtFiber(wrapperError, sourceFiber) + ); + renderDidError(); // We didn't find a boundary that could handle this type of exception. Start // over and traverse parent path again, this time treating the exception // as an error. @@ -17655,26 +17664,30 @@ to return true:wantsResponderID| | return true; } + var errorInfo = createCapturedValueAtFiber(value, sourceFiber); var workInProgress = returnFiber; do { switch (workInProgress.tag) { case HostRoot: { - var _errorInfo = value; workInProgress.flags |= ShouldCapture; - var lane = pickArbitraryLane(rootRenderLanes); - workInProgress.lanes = mergeLanes(workInProgress.lanes, lane); - var update = createRootErrorUpdate( + + var _lane = pickArbitraryLane(rootRenderLanes); + + workInProgress.lanes = mergeLanes(workInProgress.lanes, _lane); + + var _update = createRootErrorUpdate( workInProgress.stateNode, - _errorInfo, - lane + errorInfo, + _lane ); - enqueueCapturedUpdate(workInProgress, update); + + enqueueCapturedUpdate(workInProgress, _update); return false; } case ClassComponent: - var errorInfo = value; + // Capture and retry var ctor = workInProgress.type; var instance = workInProgress.stateNode; @@ -17687,19 +17700,19 @@ to return true:wantsResponderID| | ) { workInProgress.flags |= ShouldCapture; - var _lane = pickArbitraryLane(rootRenderLanes); + var _lane2 = pickArbitraryLane(rootRenderLanes); - workInProgress.lanes = mergeLanes(workInProgress.lanes, _lane); // Schedule the error boundary to re-render using updated state + workInProgress.lanes = mergeLanes(workInProgress.lanes, _lane2); // Schedule the error boundary to re-render using updated state - var _update = createClassErrorUpdate(_lane); + var _update2 = createClassErrorUpdate(_lane2); initializeClassErrorUpdate( - _update, + _update2, root, workInProgress, errorInfo ); - enqueueCapturedUpdate(workInProgress, _update); + enqueueCapturedUpdate(workInProgress, _update2); return false; } @@ -19572,20 +19585,12 @@ to return true:wantsResponderID| | function retrySuspenseComponentWithoutHydrating( current, workInProgress, - renderLanes, - recoverableError + renderLanes ) { // Falling back to client rendering. Because this has performance // implications, it's considered a recoverable error, even though the user // likely won't observe anything wrong with the UI. - // - // The error is passed in as an argument to enforce that every caller provide - // a custom message, or explicitly opt out (currently the only path that opts - // out is legacy mode; every concurrent path provides an error). - if (recoverableError !== null) { - queueHydrationError(recoverableError); - } // This will add the old fiber to the deletion list - + // This will add the old fiber to the deletion list reconcileChildFibers(workInProgress, current.child, null, renderLanes); // We're now not suspended nor dehydrated. var nextProps = workInProgress.pendingProps; @@ -19671,9 +19676,7 @@ to return true:wantsResponderID| | message = _getSuspenseInstanceF.message; stack = _getSuspenseInstanceF.stack; componentStack = _getSuspenseInstanceF.componentStack; - } - - var capturedValue = null; // TODO: Figure out a better signal than encoding a magic digest value. + } // TODO: Figure out a better signal than encoding a magic digest value. { var error; @@ -19691,17 +19694,17 @@ to return true:wantsResponderID| | error.stack = stack || ""; error.digest = digest; - capturedValue = createCapturedValueFromError( + var capturedValue = createCapturedValueFromError( error, componentStack === undefined ? null : componentStack ); + queueHydrationError(capturedValue); } return retrySuspenseComponentWithoutHydrating( current, workInProgress, - renderLanes, - capturedValue + renderLanes ); } // any context has changed, we need to treat is as if the input might have changed. @@ -19761,8 +19764,7 @@ to return true:wantsResponderID| | return retrySuspenseComponentWithoutHydrating( current, workInProgress, - renderLanes, - null + renderLanes ); } else if (isSuspenseInstancePending()) { // This component is still pending more data from the server, so we can't hydrate its @@ -19801,22 +19803,13 @@ to return true:wantsResponderID| | // something either suspended or errored. if (workInProgress.flags & ForceClientRender) { // Something errored during hydration. Try again without hydrating. + // The error should've already been logged in throwException. pushPrimaryTreeSuspenseHandler(workInProgress); workInProgress.flags &= ~ForceClientRender; - - var _capturedValue = createCapturedValueFromError( - new Error( - "There was an error while hydrating this Suspense boundary. " + - "Switched to client rendering." - ), - null - ); - return retrySuspenseComponentWithoutHydrating( current, workInProgress, - renderLanes, - _capturedValue + renderLanes ); } else if (workInProgress.memoizedState !== null) { // Something suspended and we should still be in dehydrated mode. @@ -27768,11 +27761,12 @@ to return true:wantsResponderID| | ); } } - function renderDidError(error) { + function renderDidError() { if (workInProgressRootExitStatus !== RootSuspendedWithDelay) { workInProgressRootExitStatus = RootErrored; } - + } + function queueConcurrentError(error) { if (workInProgressRootConcurrentErrors === null) { workInProgressRootConcurrentErrors = [error]; } else { @@ -30929,7 +30923,7 @@ to return true:wantsResponderID| | return root; } - var ReactVersion = "19.0.0-canary-ac768098"; + var ReactVersion = "19.0.0-canary-3041fabf"; function createPortal$1( children, diff --git a/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js b/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js index 098903bc84..d5b7495435 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js +++ b/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<> + * @generated SignedSource<<07d3bb6b94c67973d4e6288f4ded72a4>> */ "use strict"; @@ -893,7 +893,7 @@ eventPluginOrder = Array.prototype.slice.call([ "ReactNativeBridgeEventPlugin" ]); recomputePluginOrdering(); -var injectedNamesToPlugins$jscomp$inline_257 = { +var injectedNamesToPlugins$jscomp$inline_255 = { ResponderEventPlugin: ResponderEventPlugin, ReactNativeBridgeEventPlugin: { eventTypes: {}, @@ -939,32 +939,32 @@ var injectedNamesToPlugins$jscomp$inline_257 = { } } }, - isOrderingDirty$jscomp$inline_258 = !1, - pluginName$jscomp$inline_259; -for (pluginName$jscomp$inline_259 in injectedNamesToPlugins$jscomp$inline_257) + isOrderingDirty$jscomp$inline_256 = !1, + pluginName$jscomp$inline_257; +for (pluginName$jscomp$inline_257 in injectedNamesToPlugins$jscomp$inline_255) if ( - injectedNamesToPlugins$jscomp$inline_257.hasOwnProperty( - pluginName$jscomp$inline_259 + injectedNamesToPlugins$jscomp$inline_255.hasOwnProperty( + pluginName$jscomp$inline_257 ) ) { - var pluginModule$jscomp$inline_260 = - injectedNamesToPlugins$jscomp$inline_257[pluginName$jscomp$inline_259]; + var pluginModule$jscomp$inline_258 = + injectedNamesToPlugins$jscomp$inline_255[pluginName$jscomp$inline_257]; if ( - !namesToPlugins.hasOwnProperty(pluginName$jscomp$inline_259) || - namesToPlugins[pluginName$jscomp$inline_259] !== - pluginModule$jscomp$inline_260 + !namesToPlugins.hasOwnProperty(pluginName$jscomp$inline_257) || + namesToPlugins[pluginName$jscomp$inline_257] !== + pluginModule$jscomp$inline_258 ) { - if (namesToPlugins[pluginName$jscomp$inline_259]) + if (namesToPlugins[pluginName$jscomp$inline_257]) throw Error( "EventPluginRegistry: Cannot inject two different event plugins using the same name, `" + - (pluginName$jscomp$inline_259 + "`.") + (pluginName$jscomp$inline_257 + "`.") ); - namesToPlugins[pluginName$jscomp$inline_259] = - pluginModule$jscomp$inline_260; - isOrderingDirty$jscomp$inline_258 = !0; + namesToPlugins[pluginName$jscomp$inline_257] = + pluginModule$jscomp$inline_258; + isOrderingDirty$jscomp$inline_256 = !0; } } -isOrderingDirty$jscomp$inline_258 && recomputePluginOrdering(); +isOrderingDirty$jscomp$inline_256 && recomputePluginOrdering(); var instanceCache = new Map(), instanceProps = new Map(); function getInstanceFromTag(tag) { @@ -2066,7 +2066,216 @@ function is(x, y) { return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y); } var objectIs = "function" === typeof Object.is ? Object.is : is, - contextStackCursor = createCursor(null), + prefix; +function describeBuiltInComponentFrame(name) { + if (enableComponentStackLocations) { + if (void 0 === prefix) + try { + throw Error(); + } catch (x) { + var match = x.stack.trim().match(/\n( *(at )?)/); + prefix = (match && match[1]) || ""; + } + return "\n" + prefix + name; + } + return describeComponentFrame(name, null); +} +var reentry = !1; +function describeNativeComponentFrame(fn, construct) { + if (!fn || reentry) return ""; + reentry = !0; + var previousPrepareStackTrace = Error.prepareStackTrace; + Error.prepareStackTrace = void 0; + var RunInRootFrame = { + DetermineComponentFrameRoot: function () { + try { + if (construct) { + var Fake = function () { + throw Error(); + }; + Object.defineProperty(Fake.prototype, "props", { + set: function () { + throw Error(); + } + }); + if ("object" === typeof Reflect && Reflect.construct) { + try { + Reflect.construct(Fake, []); + } catch (x) { + var control = x; + } + Reflect.construct(fn, [], Fake); + } else { + try { + Fake.call(); + } catch (x$11) { + control = x$11; + } + fn.call(Fake.prototype); + } + } else { + try { + throw Error(); + } catch (x$12) { + control = x$12; + } + (Fake = fn()) && + "function" === typeof Fake.catch && + Fake.catch(function () {}); + } + } catch (sample) { + if (sample && control && "string" === typeof sample.stack) + return [sample.stack, control.stack]; + } + return [null, null]; + } + }; + RunInRootFrame.DetermineComponentFrameRoot.displayName = + "DetermineComponentFrameRoot"; + var namePropDescriptor = Object.getOwnPropertyDescriptor( + RunInRootFrame.DetermineComponentFrameRoot, + "name" + ); + namePropDescriptor && + namePropDescriptor.configurable && + Object.defineProperty(RunInRootFrame.DetermineComponentFrameRoot, "name", { + value: "DetermineComponentFrameRoot" + }); + try { + var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(), + sampleStack = _RunInRootFrame$Deter[0], + controlStack = _RunInRootFrame$Deter[1]; + if (sampleStack && controlStack) { + var sampleLines = sampleStack.split("\n"), + controlLines = controlStack.split("\n"); + for ( + namePropDescriptor = RunInRootFrame = 0; + RunInRootFrame < sampleLines.length && + !sampleLines[RunInRootFrame].includes("DetermineComponentFrameRoot"); + + ) + RunInRootFrame++; + for ( + ; + namePropDescriptor < controlLines.length && + !controlLines[namePropDescriptor].includes( + "DetermineComponentFrameRoot" + ); + + ) + namePropDescriptor++; + if ( + RunInRootFrame === sampleLines.length || + namePropDescriptor === controlLines.length + ) + for ( + RunInRootFrame = sampleLines.length - 1, + namePropDescriptor = controlLines.length - 1; + 1 <= RunInRootFrame && + 0 <= namePropDescriptor && + sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]; + + ) + namePropDescriptor--; + for ( + ; + 1 <= RunInRootFrame && 0 <= namePropDescriptor; + RunInRootFrame--, namePropDescriptor-- + ) + if (sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) { + if (1 !== RunInRootFrame || 1 !== namePropDescriptor) { + do + if ( + (RunInRootFrame--, + namePropDescriptor--, + 0 > namePropDescriptor || + sampleLines[RunInRootFrame] !== + controlLines[namePropDescriptor]) + ) { + var frame = + "\n" + + sampleLines[RunInRootFrame].replace(" at new ", " at "); + fn.displayName && + frame.includes("") && + (frame = frame.replace("", fn.displayName)); + return frame; + } + while (1 <= RunInRootFrame && 0 <= namePropDescriptor); + } + break; + } + } + } finally { + (reentry = !1), (Error.prepareStackTrace = previousPrepareStackTrace); + } + return (previousPrepareStackTrace = fn ? fn.displayName || fn.name : "") + ? describeBuiltInComponentFrame(previousPrepareStackTrace) + : ""; +} +function describeComponentFrame(name, ownerName) { + var sourceInfo = ""; + ownerName && (sourceInfo = " (created by " + ownerName + ")"); + return "\n in " + (name || "Unknown") + sourceInfo; +} +function describeFunctionComponentFrame(fn) { + return enableComponentStackLocations + ? describeNativeComponentFrame(fn, !1) + : fn + ? describeComponentFrame(fn.displayName || fn.name || null, null) + : ""; +} +function describeFiber(fiber) { + switch (fiber.tag) { + case 26: + case 27: + case 5: + return describeBuiltInComponentFrame(fiber.type); + case 16: + return describeBuiltInComponentFrame("Lazy"); + case 13: + return describeBuiltInComponentFrame("Suspense"); + case 19: + return describeBuiltInComponentFrame("SuspenseList"); + case 0: + case 15: + return describeFunctionComponentFrame(fiber.type); + case 11: + return describeFunctionComponentFrame(fiber.type.render); + case 1: + return ( + (fiber = fiber.type), + (fiber = enableComponentStackLocations + ? describeNativeComponentFrame(fiber, !0) + : describeFunctionComponentFrame(fiber)), + fiber + ); + default: + return ""; + } +} +function getStackByFiberInDevAndProd(workInProgress) { + try { + var info = ""; + do + (info += describeFiber(workInProgress)), + (workInProgress = workInProgress.return); + while (workInProgress); + return info; + } catch (x) { + return "\nError generating stack: " + x.message + "\n" + x.stack; + } +} +var CapturedStacks = new WeakMap(); +function createCapturedValueAtFiber(value, source) { + if ("object" === typeof value && null !== value) { + var stack = CapturedStacks.get(value); + "string" !== typeof stack && + ((stack = getStackByFiberInDevAndProd(source)), + CapturedStacks.set(value, stack)); + } else stack = getStackByFiberInDevAndProd(source); + return { value: value, source: source, stack: stack }; +} +var contextStackCursor = createCursor(null), contextFiberStackCursor = createCursor(null), rootInstanceStackCursor = createCursor(null), hostTransitionProviderCursor = createCursor(null), @@ -2222,14 +2431,14 @@ function flushSyncWorkAcrossRoots_impl(onlyLegacy) { var didPerformSomeWork = !1; for (var root = firstScheduledRoot; null !== root; ) { if (!onlyLegacy || 0 === root.tag) { - var workInProgressRootRenderLanes$12 = workInProgressRootRenderLanes; - workInProgressRootRenderLanes$12 = getNextLanes( + var workInProgressRootRenderLanes$14 = workInProgressRootRenderLanes; + workInProgressRootRenderLanes$14 = getNextLanes( root, - root === workInProgressRoot ? workInProgressRootRenderLanes$12 : 0 + root === workInProgressRoot ? workInProgressRootRenderLanes$14 : 0 ); - 0 !== (workInProgressRootRenderLanes$12 & 3) && + 0 !== (workInProgressRootRenderLanes$14 & 3) && ((didPerformSomeWork = !0), - performSyncWorkOnRoot(root, workInProgressRootRenderLanes$12)); + performSyncWorkOnRoot(root, workInProgressRootRenderLanes$14)); } root = root.next; } @@ -2663,205 +2872,6 @@ function shallowEqual(objA, objB) { } return !0; } -var prefix; -function describeBuiltInComponentFrame(name) { - if (enableComponentStackLocations) { - if (void 0 === prefix) - try { - throw Error(); - } catch (x) { - var match = x.stack.trim().match(/\n( *(at )?)/); - prefix = (match && match[1]) || ""; - } - return "\n" + prefix + name; - } - return describeComponentFrame(name, null); -} -var reentry = !1; -function describeNativeComponentFrame(fn, construct) { - if (!fn || reentry) return ""; - reentry = !0; - var previousPrepareStackTrace = Error.prepareStackTrace; - Error.prepareStackTrace = void 0; - var RunInRootFrame = { - DetermineComponentFrameRoot: function () { - try { - if (construct) { - var Fake = function () { - throw Error(); - }; - Object.defineProperty(Fake.prototype, "props", { - set: function () { - throw Error(); - } - }); - if ("object" === typeof Reflect && Reflect.construct) { - try { - Reflect.construct(Fake, []); - } catch (x) { - var control = x; - } - Reflect.construct(fn, [], Fake); - } else { - try { - Fake.call(); - } catch (x$17) { - control = x$17; - } - fn.call(Fake.prototype); - } - } else { - try { - throw Error(); - } catch (x$18) { - control = x$18; - } - (Fake = fn()) && - "function" === typeof Fake.catch && - Fake.catch(function () {}); - } - } catch (sample) { - if (sample && control && "string" === typeof sample.stack) - return [sample.stack, control.stack]; - } - return [null, null]; - } - }; - RunInRootFrame.DetermineComponentFrameRoot.displayName = - "DetermineComponentFrameRoot"; - var namePropDescriptor = Object.getOwnPropertyDescriptor( - RunInRootFrame.DetermineComponentFrameRoot, - "name" - ); - namePropDescriptor && - namePropDescriptor.configurable && - Object.defineProperty(RunInRootFrame.DetermineComponentFrameRoot, "name", { - value: "DetermineComponentFrameRoot" - }); - try { - var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(), - sampleStack = _RunInRootFrame$Deter[0], - controlStack = _RunInRootFrame$Deter[1]; - if (sampleStack && controlStack) { - var sampleLines = sampleStack.split("\n"), - controlLines = controlStack.split("\n"); - for ( - namePropDescriptor = RunInRootFrame = 0; - RunInRootFrame < sampleLines.length && - !sampleLines[RunInRootFrame].includes("DetermineComponentFrameRoot"); - - ) - RunInRootFrame++; - for ( - ; - namePropDescriptor < controlLines.length && - !controlLines[namePropDescriptor].includes( - "DetermineComponentFrameRoot" - ); - - ) - namePropDescriptor++; - if ( - RunInRootFrame === sampleLines.length || - namePropDescriptor === controlLines.length - ) - for ( - RunInRootFrame = sampleLines.length - 1, - namePropDescriptor = controlLines.length - 1; - 1 <= RunInRootFrame && - 0 <= namePropDescriptor && - sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]; - - ) - namePropDescriptor--; - for ( - ; - 1 <= RunInRootFrame && 0 <= namePropDescriptor; - RunInRootFrame--, namePropDescriptor-- - ) - if (sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) { - if (1 !== RunInRootFrame || 1 !== namePropDescriptor) { - do - if ( - (RunInRootFrame--, - namePropDescriptor--, - 0 > namePropDescriptor || - sampleLines[RunInRootFrame] !== - controlLines[namePropDescriptor]) - ) { - var frame = - "\n" + - sampleLines[RunInRootFrame].replace(" at new ", " at "); - fn.displayName && - frame.includes("") && - (frame = frame.replace("", fn.displayName)); - return frame; - } - while (1 <= RunInRootFrame && 0 <= namePropDescriptor); - } - break; - } - } - } finally { - (reentry = !1), (Error.prepareStackTrace = previousPrepareStackTrace); - } - return (previousPrepareStackTrace = fn ? fn.displayName || fn.name : "") - ? describeBuiltInComponentFrame(previousPrepareStackTrace) - : ""; -} -function describeComponentFrame(name, ownerName) { - var sourceInfo = ""; - ownerName && (sourceInfo = " (created by " + ownerName + ")"); - return "\n in " + (name || "Unknown") + sourceInfo; -} -function describeFunctionComponentFrame(fn) { - return enableComponentStackLocations - ? describeNativeComponentFrame(fn, !1) - : fn - ? describeComponentFrame(fn.displayName || fn.name || null, null) - : ""; -} -function describeFiber(fiber) { - switch (fiber.tag) { - case 26: - case 27: - case 5: - return describeBuiltInComponentFrame(fiber.type); - case 16: - return describeBuiltInComponentFrame("Lazy"); - case 13: - return describeBuiltInComponentFrame("Suspense"); - case 19: - return describeBuiltInComponentFrame("SuspenseList"); - case 0: - case 15: - return describeFunctionComponentFrame(fiber.type); - case 11: - return describeFunctionComponentFrame(fiber.type.render); - case 1: - return ( - (fiber = fiber.type), - (fiber = enableComponentStackLocations - ? describeNativeComponentFrame(fiber, !0) - : describeFunctionComponentFrame(fiber)), - fiber - ); - default: - return ""; - } -} -function getStackByFiberInDevAndProd(workInProgress) { - try { - var info = ""; - do - (info += describeFiber(workInProgress)), - (workInProgress = workInProgress.return); - while (workInProgress); - return info; - } catch (x) { - return "\nError generating stack: " + x.message + "\n" + x.stack; - } -} var SuspenseException = Error( "Suspense Exception: This is not a real error! It's an implementation detail of `use` to interrupt the current render. You must either rethrow it immediately, or move the `use` call outside of the `try/catch` block. Capturing without rethrowing will lead to unexpected behavior.\n\nTo handle async errors, wrap your component in an error boundary, or call the promise's `.catch` method and pass the result to `use`" ), @@ -5149,20 +5159,6 @@ function resolveDefaultProps(Component, baseProps) { } return baseProps; } -var CapturedStacks = new WeakMap(); -function createCapturedValueAtFiber(value, source) { - if ("object" === typeof value && null !== value) { - var stack = CapturedStacks.get(value); - "string" !== typeof stack && - ((stack = getStackByFiberInDevAndProd(source)), - CapturedStacks.set(value, stack)); - } else stack = getStackByFiberInDevAndProd(source); - return { value: value, source: source, stack: stack }; -} -function createCapturedValueFromError(value, stack) { - "string" === typeof stack && CapturedStacks.set(value, stack); - return { value: value, source: null, stack: stack }; -} var reportGlobalError = "function" === typeof reportError ? reportError @@ -5271,32 +5267,31 @@ function throwException( "object" === typeof value && "function" === typeof value.then ) { - var wakeable = value; - value = sourceFiber.tag; + var tag = sourceFiber.tag; 0 !== (sourceFiber.mode & 1) || - (0 !== value && 11 !== value && 15 !== value) || - ((value = sourceFiber.alternate) - ? ((sourceFiber.updateQueue = value.updateQueue), - (sourceFiber.memoizedState = value.memoizedState), - (sourceFiber.lanes = value.lanes)) + (0 !== tag && 11 !== tag && 15 !== tag) || + ((tag = sourceFiber.alternate) + ? ((sourceFiber.updateQueue = tag.updateQueue), + (sourceFiber.memoizedState = tag.memoizedState), + (sourceFiber.lanes = tag.lanes)) : ((sourceFiber.updateQueue = null), (sourceFiber.memoizedState = null))); - value = suspenseHandlerStackCursor.current; - if (null !== value) { - switch (value.tag) { + tag = suspenseHandlerStackCursor.current; + if (null !== tag) { + switch (tag.tag) { case 13: return ( sourceFiber.mode & 1 && (null === shellBoundary ? renderDidSuspendDelayIfPossible() - : null === value.alternate && + : null === tag.alternate && 0 === workInProgressRootExitStatus && (workInProgressRootExitStatus = 3)), - (value.flags &= -257), - 0 === (value.mode & 1) - ? value === returnFiber - ? (value.flags |= 65536) - : ((value.flags |= 128), + (tag.flags &= -257), + 0 === (tag.mode & 1) + ? tag === returnFiber + ? (tag.flags |= 65536) + : ((tag.flags |= 128), (sourceFiber.flags |= 131072), (sourceFiber.flags &= -52805), 1 === sourceFiber.tag @@ -5309,48 +5304,48 @@ function throwException( null === sourceFiber.alternate && (sourceFiber.tag = 28), (sourceFiber.lanes |= 2)) - : ((value.flags |= 65536), (value.lanes = rootRenderLanes)), - wakeable === noopSuspenseyCommitThenable - ? (value.flags |= 16384) - : ((returnFiber = value.updateQueue), + : ((tag.flags |= 65536), (tag.lanes = rootRenderLanes)), + value === noopSuspenseyCommitThenable + ? (tag.flags |= 16384) + : ((returnFiber = tag.updateQueue), null === returnFiber - ? (value.updateQueue = new Set([wakeable])) - : returnFiber.add(wakeable), - value.mode & 1 && - attachPingListener(root, wakeable, rootRenderLanes)), + ? (tag.updateQueue = new Set([value])) + : returnFiber.add(value), + tag.mode & 1 && + attachPingListener(root, value, rootRenderLanes)), !1 ); case 22: - if (value.mode & 1) + if (tag.mode & 1) return ( - (value.flags |= 65536), - wakeable === noopSuspenseyCommitThenable - ? (value.flags |= 16384) - : ((returnFiber = value.updateQueue), + (tag.flags |= 65536), + value === noopSuspenseyCommitThenable + ? (tag.flags |= 16384) + : ((returnFiber = tag.updateQueue), null === returnFiber ? ((returnFiber = { transitions: null, markerInstances: null, - retryQueue: new Set([wakeable]) + retryQueue: new Set([value]) }), - (value.updateQueue = returnFiber)) + (tag.updateQueue = returnFiber)) : ((sourceFiber = returnFiber.retryQueue), null === sourceFiber - ? (returnFiber.retryQueue = new Set([wakeable])) - : sourceFiber.add(wakeable)), - attachPingListener(root, wakeable, rootRenderLanes)), + ? (returnFiber.retryQueue = new Set([value])) + : sourceFiber.add(value)), + attachPingListener(root, value, rootRenderLanes)), !1 ); } throw Error( "Unexpected Suspense handler tag (" + - value.tag + + tag.tag + "). This is a bug in React." ); } if (1 === root.tag) return ( - attachPingListener(root, wakeable, rootRenderLanes), + attachPingListener(root, value, rootRenderLanes), renderDidSuspendDelayIfPossible(), !1 ); @@ -5358,58 +5353,58 @@ function throwException( "A component suspended while responding to synchronous input. This will cause the UI to be replaced with a loading indicator. To fix, updates that suspend should be wrapped with startTransition." ); } - wakeable = value = createCapturedValueAtFiber(value, sourceFiber); - 4 !== workInProgressRootExitStatus && (workInProgressRootExitStatus = 2); + tag = createCapturedValueAtFiber( + Error( + "There was an error during concurrent rendering but React was able to recover by instead synchronously rendering the entire root.", + { cause: value } + ), + sourceFiber + ); null === workInProgressRootConcurrentErrors - ? (workInProgressRootConcurrentErrors = [wakeable]) - : workInProgressRootConcurrentErrors.push(wakeable); + ? (workInProgressRootConcurrentErrors = [tag]) + : workInProgressRootConcurrentErrors.push(tag); + 4 !== workInProgressRootExitStatus && (workInProgressRootExitStatus = 2); if (null === returnFiber) return !0; - wakeable = returnFiber; + value = createCapturedValueAtFiber(value, sourceFiber); do { - switch (wakeable.tag) { + switch (returnFiber.tag) { case 3: return ( - (root = value), - (wakeable.flags |= 65536), - (rootRenderLanes &= -rootRenderLanes), - (wakeable.lanes |= rootRenderLanes), - (root = createRootErrorUpdate( - wakeable.stateNode, - root, - rootRenderLanes - )), - enqueueCapturedUpdate(wakeable, root), + (returnFiber.flags |= 65536), + (root = rootRenderLanes & -rootRenderLanes), + (returnFiber.lanes |= root), + (root = createRootErrorUpdate(returnFiber.stateNode, value, root)), + enqueueCapturedUpdate(returnFiber, root), !1 ); case 1: - returnFiber = value; - sourceFiber = wakeable.type; - var instance = wakeable.stateNode; if ( - 0 === (wakeable.flags & 128) && - ("function" === typeof sourceFiber.getDerivedStateFromError || - (null !== instance && - "function" === typeof instance.componentDidCatch && - (null === legacyErrorBoundariesThatAlreadyFailed || - !legacyErrorBoundariesThatAlreadyFailed.has(instance)))) + ((sourceFiber = returnFiber.type), + (tag = returnFiber.stateNode), + 0 === (returnFiber.flags & 128) && + ("function" === typeof sourceFiber.getDerivedStateFromError || + (null !== tag && + "function" === typeof tag.componentDidCatch && + (null === legacyErrorBoundariesThatAlreadyFailed || + !legacyErrorBoundariesThatAlreadyFailed.has(tag))))) ) return ( - (wakeable.flags |= 65536), + (returnFiber.flags |= 65536), (rootRenderLanes &= -rootRenderLanes), - (wakeable.lanes |= rootRenderLanes), + (returnFiber.lanes |= rootRenderLanes), (rootRenderLanes = createClassErrorUpdate(rootRenderLanes)), initializeClassErrorUpdate( rootRenderLanes, root, - wakeable, - returnFiber + returnFiber, + value ), - enqueueCapturedUpdate(wakeable, rootRenderLanes), + enqueueCapturedUpdate(returnFiber, rootRenderLanes), !1 ); } - wakeable = wakeable.return; - } while (null !== wakeable); + returnFiber = returnFiber.return; + } while (null !== returnFiber); return !1; } var ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner, @@ -6025,17 +6020,10 @@ function updateSuspenseComponent(current, workInProgress, renderLanes) { workInProgress.flags & 256 ? (pushPrimaryTreeSuspenseHandler(workInProgress), (workInProgress.flags &= -257), - (JSCompiler_temp = createCapturedValueFromError( - Error( - "There was an error while hydrating this Suspense boundary. Switched to client rendering." - ), - null - )), (workInProgress = retrySuspenseComponentWithoutHydrating( current, workInProgress, - renderLanes, - JSCompiler_temp + renderLanes ))) : null !== workInProgress.memoizedState ? (reuseSuspenseHandlerOnStack(workInProgress), @@ -6085,12 +6073,14 @@ function updateSuspenseComponent(current, workInProgress, renderLanes) { )), (nextProps.stack = ""), (nextProps.digest = JSCompiler_temp), - (JSCompiler_temp = createCapturedValueFromError(nextProps, null)), + (JSCompiler_temp = { value: nextProps, source: null, stack: null }), + null === hydrationErrors + ? (hydrationErrors = [JSCompiler_temp]) + : hydrationErrors.push(JSCompiler_temp), (workInProgress = retrySuspenseComponentWithoutHydrating( current, workInProgress, - renderLanes, - JSCompiler_temp + renderLanes )); else if ( ((JSCompiler_temp = 0 !== (renderLanes & current.childLanes)), @@ -6155,8 +6145,7 @@ function updateSuspenseComponent(current, workInProgress, renderLanes) { workInProgress = retrySuspenseComponentWithoutHydrating( current, workInProgress, - renderLanes, - null + renderLanes ); } else shim$1() @@ -6293,13 +6282,8 @@ function mountSuspenseFallbackChildren( function retrySuspenseComponentWithoutHydrating( current, workInProgress, - renderLanes, - recoverableError + renderLanes ) { - null !== recoverableError && - (null === hydrationErrors - ? (hydrationErrors = [recoverableError]) - : hydrationErrors.push(recoverableError)); reconcileChildFibers(workInProgress, current.child, null, renderLanes); current = mountSuspensePrimaryChildren( workInProgress, @@ -7172,14 +7156,14 @@ function cutOffTailIfNeeded(renderState, hasRenderedATailFallback) { break; case "collapsed": lastTailNode = renderState.tail; - for (var lastTailNode$77 = null; null !== lastTailNode; ) - null !== lastTailNode.alternate && (lastTailNode$77 = lastTailNode), + for (var lastTailNode$75 = null; null !== lastTailNode; ) + null !== lastTailNode.alternate && (lastTailNode$75 = lastTailNode), (lastTailNode = lastTailNode.sibling); - null === lastTailNode$77 + null === lastTailNode$75 ? hasRenderedATailFallback || null === renderState.tail ? (renderState.tail = null) : (renderState.tail.sibling = null) - : (lastTailNode$77.sibling = null); + : (lastTailNode$75.sibling = null); } } function bubbleProperties(completedWork) { @@ -7189,19 +7173,19 @@ function bubbleProperties(completedWork) { newChildLanes = 0, subtreeFlags = 0; if (didBailout) - for (var child$78 = completedWork.child; null !== child$78; ) - (newChildLanes |= child$78.lanes | child$78.childLanes), - (subtreeFlags |= child$78.subtreeFlags & 31457280), - (subtreeFlags |= child$78.flags & 31457280), - (child$78.return = completedWork), - (child$78 = child$78.sibling); + for (var child$76 = completedWork.child; null !== child$76; ) + (newChildLanes |= child$76.lanes | child$76.childLanes), + (subtreeFlags |= child$76.subtreeFlags & 31457280), + (subtreeFlags |= child$76.flags & 31457280), + (child$76.return = completedWork), + (child$76 = child$76.sibling); else - for (child$78 = completedWork.child; null !== child$78; ) - (newChildLanes |= child$78.lanes | child$78.childLanes), - (subtreeFlags |= child$78.subtreeFlags), - (subtreeFlags |= child$78.flags), - (child$78.return = completedWork), - (child$78 = child$78.sibling); + for (child$76 = completedWork.child; null !== child$76; ) + (newChildLanes |= child$76.lanes | child$76.childLanes), + (subtreeFlags |= child$76.subtreeFlags), + (subtreeFlags |= child$76.flags), + (child$76.return = completedWork), + (child$76 = child$76.sibling); completedWork.subtreeFlags |= subtreeFlags; completedWork.childLanes = newChildLanes; return didBailout; @@ -7716,8 +7700,8 @@ function safelyDetachRef(current, nearestMountedAncestor) { else if ("function" === typeof ref) try { ref(null); - } catch (error$100) { - captureCommitPhaseError(current, nearestMountedAncestor, error$100); + } catch (error$98) { + captureCommitPhaseError(current, nearestMountedAncestor, error$98); } else ref.current = null; } @@ -7822,10 +7806,10 @@ function commitHookEffectListMount(flags, finishedWork) { var effect = (finishedWork = finishedWork.next); do { if ((effect.tag & flags) === flags) { - var create$101 = effect.create, + var create$99 = effect.create, inst = effect.inst; - create$101 = create$101(); - inst.destroy = create$101; + create$99 = create$99(); + inst.destroy = create$99; } effect = effect.next; } while (effect !== finishedWork); @@ -7880,11 +7864,11 @@ function commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) { current, finishedRoot.__reactInternalSnapshotBeforeUpdate ); - } catch (error$102) { + } catch (error$100) { captureCommitPhaseError( finishedWork, finishedWork.return, - error$102 + error$100 ); } } @@ -8345,8 +8329,8 @@ function commitMutationEffectsOnFiber(finishedWork, root) { } try { commitHookEffectListUnmount(5, finishedWork, finishedWork.return); - } catch (error$110) { - captureCommitPhaseError(finishedWork, finishedWork.return, error$110); + } catch (error$108) { + captureCommitPhaseError(finishedWork, finishedWork.return, error$108); } } break; @@ -8393,8 +8377,8 @@ function commitMutationEffectsOnFiber(finishedWork, root) { viewConfig.uiViewClassName, updatePayload ); - } catch (error$113) { - captureCommitPhaseError(finishedWork, finishedWork.return, error$113); + } catch (error$111) { + captureCommitPhaseError(finishedWork, finishedWork.return, error$111); } } break; @@ -8414,8 +8398,8 @@ function commitMutationEffectsOnFiber(finishedWork, root) { "RCTRawText", { text: current } ); - } catch (error$114) { - captureCommitPhaseError(finishedWork, finishedWork.return, error$114); + } catch (error$112) { + captureCommitPhaseError(finishedWork, finishedWork.return, error$112); } } break; @@ -8527,11 +8511,11 @@ function commitMutationEffectsOnFiber(finishedWork, root) { if (null === current) try { throw Error("Not yet implemented."); - } catch (error$104) { + } catch (error$102) { captureCommitPhaseError( finishedWork, finishedWork.return, - error$104 + error$102 ); } } else if ( @@ -8605,12 +8589,12 @@ function commitReconciliationEffects(finishedWork) { break; case 3: case 4: - var parent$105 = JSCompiler_inline_result.stateNode.containerInfo, - before$106 = getHostSibling(finishedWork); + var parent$103 = JSCompiler_inline_result.stateNode.containerInfo, + before$104 = getHostSibling(finishedWork); insertOrAppendPlacementNodeIntoContainer( finishedWork, - before$106, - parent$105 + before$104, + parent$103 ); break; default: @@ -9725,8 +9709,8 @@ function renderRootSync(root, lanes) { } workLoopSync(); break; - } catch (thrownValue$122) { - handleThrow(root, thrownValue$122); + } catch (thrownValue$120) { + handleThrow(root, thrownValue$120); } while (1); lanes && root.shellSuspendCounter++; @@ -9834,8 +9818,8 @@ function renderRootConcurrent(root, lanes) { } workLoopConcurrent(); break; - } catch (thrownValue$124) { - handleThrow(root, thrownValue$124); + } catch (thrownValue$122) { + handleThrow(root, thrownValue$122); } while (1); resetContextDependencies(); @@ -10847,10 +10831,10 @@ batchedUpdatesImpl = function (fn, a) { } }; var roots = new Map(), - devToolsConfig$jscomp$inline_1167 = { + devToolsConfig$jscomp$inline_1163 = { findFiberByHostInstance: getInstanceFromTag, bundleType: 0, - version: "19.0.0-canary-aca2b47f", + version: "19.0.0-canary-e34462a9", rendererPackageName: "react-native-renderer", rendererConfig: { getInspectorDataForInstance: getInspectorDataForInstance, @@ -10866,11 +10850,11 @@ var roots = new Map(), }.bind(null, findNodeHandle) } }; -var internals$jscomp$inline_1414 = { - bundleType: devToolsConfig$jscomp$inline_1167.bundleType, - version: devToolsConfig$jscomp$inline_1167.version, - rendererPackageName: devToolsConfig$jscomp$inline_1167.rendererPackageName, - rendererConfig: devToolsConfig$jscomp$inline_1167.rendererConfig, +var internals$jscomp$inline_1416 = { + bundleType: devToolsConfig$jscomp$inline_1163.bundleType, + version: devToolsConfig$jscomp$inline_1163.version, + rendererPackageName: devToolsConfig$jscomp$inline_1163.rendererPackageName, + rendererConfig: devToolsConfig$jscomp$inline_1163.rendererConfig, overrideHookState: null, overrideHookStateDeletePath: null, overrideHookStateRenamePath: null, @@ -10886,26 +10870,26 @@ var internals$jscomp$inline_1414 = { return null === fiber ? null : fiber.stateNode; }, findFiberByHostInstance: - devToolsConfig$jscomp$inline_1167.findFiberByHostInstance || + devToolsConfig$jscomp$inline_1163.findFiberByHostInstance || emptyFindFiberByHostInstance, findHostInstancesForRefresh: null, scheduleRefresh: null, scheduleRoot: null, setRefreshHandler: null, getCurrentFiber: null, - reconcilerVersion: "19.0.0-canary-aca2b47f" + reconcilerVersion: "19.0.0-canary-e34462a9" }; if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) { - var hook$jscomp$inline_1415 = __REACT_DEVTOOLS_GLOBAL_HOOK__; + var hook$jscomp$inline_1417 = __REACT_DEVTOOLS_GLOBAL_HOOK__; if ( - !hook$jscomp$inline_1415.isDisabled && - hook$jscomp$inline_1415.supportsFiber + !hook$jscomp$inline_1417.isDisabled && + hook$jscomp$inline_1417.supportsFiber ) try { - (rendererID = hook$jscomp$inline_1415.inject( - internals$jscomp$inline_1414 + (rendererID = hook$jscomp$inline_1417.inject( + internals$jscomp$inline_1416 )), - (injectedHook = hook$jscomp$inline_1415); + (injectedHook = hook$jscomp$inline_1417); } catch (err) {} } exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = { diff --git a/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js b/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js index 66911c5811..9967e0c97a 100644 --- a/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js +++ b/compiled-rn/facebook-fbsource/xplat/js/react-native-github/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js @@ -7,7 +7,7 @@ * @noflow * @nolint * @preventMunge - * @generated SignedSource<<6112fe4a64cd1a98c2f7c3ec1990268c>> + * @generated SignedSource<> */ "use strict"; @@ -897,7 +897,7 @@ eventPluginOrder = Array.prototype.slice.call([ "ReactNativeBridgeEventPlugin" ]); recomputePluginOrdering(); -var injectedNamesToPlugins$jscomp$inline_273 = { +var injectedNamesToPlugins$jscomp$inline_271 = { ResponderEventPlugin: ResponderEventPlugin, ReactNativeBridgeEventPlugin: { eventTypes: {}, @@ -943,32 +943,32 @@ var injectedNamesToPlugins$jscomp$inline_273 = { } } }, - isOrderingDirty$jscomp$inline_274 = !1, - pluginName$jscomp$inline_275; -for (pluginName$jscomp$inline_275 in injectedNamesToPlugins$jscomp$inline_273) + isOrderingDirty$jscomp$inline_272 = !1, + pluginName$jscomp$inline_273; +for (pluginName$jscomp$inline_273 in injectedNamesToPlugins$jscomp$inline_271) if ( - injectedNamesToPlugins$jscomp$inline_273.hasOwnProperty( - pluginName$jscomp$inline_275 + injectedNamesToPlugins$jscomp$inline_271.hasOwnProperty( + pluginName$jscomp$inline_273 ) ) { - var pluginModule$jscomp$inline_276 = - injectedNamesToPlugins$jscomp$inline_273[pluginName$jscomp$inline_275]; + var pluginModule$jscomp$inline_274 = + injectedNamesToPlugins$jscomp$inline_271[pluginName$jscomp$inline_273]; if ( - !namesToPlugins.hasOwnProperty(pluginName$jscomp$inline_275) || - namesToPlugins[pluginName$jscomp$inline_275] !== - pluginModule$jscomp$inline_276 + !namesToPlugins.hasOwnProperty(pluginName$jscomp$inline_273) || + namesToPlugins[pluginName$jscomp$inline_273] !== + pluginModule$jscomp$inline_274 ) { - if (namesToPlugins[pluginName$jscomp$inline_275]) + if (namesToPlugins[pluginName$jscomp$inline_273]) throw Error( "EventPluginRegistry: Cannot inject two different event plugins using the same name, `" + - (pluginName$jscomp$inline_275 + "`.") + (pluginName$jscomp$inline_273 + "`.") ); - namesToPlugins[pluginName$jscomp$inline_275] = - pluginModule$jscomp$inline_276; - isOrderingDirty$jscomp$inline_274 = !0; + namesToPlugins[pluginName$jscomp$inline_273] = + pluginModule$jscomp$inline_274; + isOrderingDirty$jscomp$inline_272 = !0; } } -isOrderingDirty$jscomp$inline_274 && recomputePluginOrdering(); +isOrderingDirty$jscomp$inline_272 && recomputePluginOrdering(); var instanceCache = new Map(), instanceProps = new Map(); function getInstanceFromTag(tag) { @@ -2188,7 +2188,216 @@ function is(x, y) { return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y); } var objectIs = "function" === typeof Object.is ? Object.is : is, - contextStackCursor = createCursor(null), + prefix; +function describeBuiltInComponentFrame(name) { + if (enableComponentStackLocations) { + if (void 0 === prefix) + try { + throw Error(); + } catch (x) { + var match = x.stack.trim().match(/\n( *(at )?)/); + prefix = (match && match[1]) || ""; + } + return "\n" + prefix + name; + } + return describeComponentFrame(name, null); +} +var reentry = !1; +function describeNativeComponentFrame(fn, construct) { + if (!fn || reentry) return ""; + reentry = !0; + var previousPrepareStackTrace = Error.prepareStackTrace; + Error.prepareStackTrace = void 0; + var RunInRootFrame = { + DetermineComponentFrameRoot: function () { + try { + if (construct) { + var Fake = function () { + throw Error(); + }; + Object.defineProperty(Fake.prototype, "props", { + set: function () { + throw Error(); + } + }); + if ("object" === typeof Reflect && Reflect.construct) { + try { + Reflect.construct(Fake, []); + } catch (x) { + var control = x; + } + Reflect.construct(fn, [], Fake); + } else { + try { + Fake.call(); + } catch (x$14) { + control = x$14; + } + fn.call(Fake.prototype); + } + } else { + try { + throw Error(); + } catch (x$15) { + control = x$15; + } + (Fake = fn()) && + "function" === typeof Fake.catch && + Fake.catch(function () {}); + } + } catch (sample) { + if (sample && control && "string" === typeof sample.stack) + return [sample.stack, control.stack]; + } + return [null, null]; + } + }; + RunInRootFrame.DetermineComponentFrameRoot.displayName = + "DetermineComponentFrameRoot"; + var namePropDescriptor = Object.getOwnPropertyDescriptor( + RunInRootFrame.DetermineComponentFrameRoot, + "name" + ); + namePropDescriptor && + namePropDescriptor.configurable && + Object.defineProperty(RunInRootFrame.DetermineComponentFrameRoot, "name", { + value: "DetermineComponentFrameRoot" + }); + try { + var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(), + sampleStack = _RunInRootFrame$Deter[0], + controlStack = _RunInRootFrame$Deter[1]; + if (sampleStack && controlStack) { + var sampleLines = sampleStack.split("\n"), + controlLines = controlStack.split("\n"); + for ( + namePropDescriptor = RunInRootFrame = 0; + RunInRootFrame < sampleLines.length && + !sampleLines[RunInRootFrame].includes("DetermineComponentFrameRoot"); + + ) + RunInRootFrame++; + for ( + ; + namePropDescriptor < controlLines.length && + !controlLines[namePropDescriptor].includes( + "DetermineComponentFrameRoot" + ); + + ) + namePropDescriptor++; + if ( + RunInRootFrame === sampleLines.length || + namePropDescriptor === controlLines.length + ) + for ( + RunInRootFrame = sampleLines.length - 1, + namePropDescriptor = controlLines.length - 1; + 1 <= RunInRootFrame && + 0 <= namePropDescriptor && + sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]; + + ) + namePropDescriptor--; + for ( + ; + 1 <= RunInRootFrame && 0 <= namePropDescriptor; + RunInRootFrame--, namePropDescriptor-- + ) + if (sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) { + if (1 !== RunInRootFrame || 1 !== namePropDescriptor) { + do + if ( + (RunInRootFrame--, + namePropDescriptor--, + 0 > namePropDescriptor || + sampleLines[RunInRootFrame] !== + controlLines[namePropDescriptor]) + ) { + var frame = + "\n" + + sampleLines[RunInRootFrame].replace(" at new ", " at "); + fn.displayName && + frame.includes("") && + (frame = frame.replace("", fn.displayName)); + return frame; + } + while (1 <= RunInRootFrame && 0 <= namePropDescriptor); + } + break; + } + } + } finally { + (reentry = !1), (Error.prepareStackTrace = previousPrepareStackTrace); + } + return (previousPrepareStackTrace = fn ? fn.displayName || fn.name : "") + ? describeBuiltInComponentFrame(previousPrepareStackTrace) + : ""; +} +function describeComponentFrame(name, ownerName) { + var sourceInfo = ""; + ownerName && (sourceInfo = " (created by " + ownerName + ")"); + return "\n in " + (name || "Unknown") + sourceInfo; +} +function describeFunctionComponentFrame(fn) { + return enableComponentStackLocations + ? describeNativeComponentFrame(fn, !1) + : fn + ? describeComponentFrame(fn.displayName || fn.name || null, null) + : ""; +} +function describeFiber(fiber) { + switch (fiber.tag) { + case 26: + case 27: + case 5: + return describeBuiltInComponentFrame(fiber.type); + case 16: + return describeBuiltInComponentFrame("Lazy"); + case 13: + return describeBuiltInComponentFrame("Suspense"); + case 19: + return describeBuiltInComponentFrame("SuspenseList"); + case 0: + case 15: + return describeFunctionComponentFrame(fiber.type); + case 11: + return describeFunctionComponentFrame(fiber.type.render); + case 1: + return ( + (fiber = fiber.type), + (fiber = enableComponentStackLocations + ? describeNativeComponentFrame(fiber, !0) + : describeFunctionComponentFrame(fiber)), + fiber + ); + default: + return ""; + } +} +function getStackByFiberInDevAndProd(workInProgress) { + try { + var info = ""; + do + (info += describeFiber(workInProgress)), + (workInProgress = workInProgress.return); + while (workInProgress); + return info; + } catch (x) { + return "\nError generating stack: " + x.message + "\n" + x.stack; + } +} +var CapturedStacks = new WeakMap(); +function createCapturedValueAtFiber(value, source) { + if ("object" === typeof value && null !== value) { + var stack = CapturedStacks.get(value); + "string" !== typeof stack && + ((stack = getStackByFiberInDevAndProd(source)), + CapturedStacks.set(value, stack)); + } else stack = getStackByFiberInDevAndProd(source); + return { value: value, source: source, stack: stack }; +} +var contextStackCursor = createCursor(null), contextFiberStackCursor = createCursor(null), rootInstanceStackCursor = createCursor(null), hostTransitionProviderCursor = createCursor(null), @@ -2344,14 +2553,14 @@ function flushSyncWorkAcrossRoots_impl(onlyLegacy) { var didPerformSomeWork = !1; for (var root = firstScheduledRoot; null !== root; ) { if (!onlyLegacy || 0 === root.tag) { - var workInProgressRootRenderLanes$15 = workInProgressRootRenderLanes; - workInProgressRootRenderLanes$15 = getNextLanes( + var workInProgressRootRenderLanes$17 = workInProgressRootRenderLanes; + workInProgressRootRenderLanes$17 = getNextLanes( root, - root === workInProgressRoot ? workInProgressRootRenderLanes$15 : 0 + root === workInProgressRoot ? workInProgressRootRenderLanes$17 : 0 ); - 0 !== (workInProgressRootRenderLanes$15 & 3) && + 0 !== (workInProgressRootRenderLanes$17 & 3) && ((didPerformSomeWork = !0), - performSyncWorkOnRoot(root, workInProgressRootRenderLanes$15)); + performSyncWorkOnRoot(root, workInProgressRootRenderLanes$17)); } root = root.next; } @@ -2785,205 +2994,6 @@ function shallowEqual(objA, objB) { } return !0; } -var prefix; -function describeBuiltInComponentFrame(name) { - if (enableComponentStackLocations) { - if (void 0 === prefix) - try { - throw Error(); - } catch (x) { - var match = x.stack.trim().match(/\n( *(at )?)/); - prefix = (match && match[1]) || ""; - } - return "\n" + prefix + name; - } - return describeComponentFrame(name, null); -} -var reentry = !1; -function describeNativeComponentFrame(fn, construct) { - if (!fn || reentry) return ""; - reentry = !0; - var previousPrepareStackTrace = Error.prepareStackTrace; - Error.prepareStackTrace = void 0; - var RunInRootFrame = { - DetermineComponentFrameRoot: function () { - try { - if (construct) { - var Fake = function () { - throw Error(); - }; - Object.defineProperty(Fake.prototype, "props", { - set: function () { - throw Error(); - } - }); - if ("object" === typeof Reflect && Reflect.construct) { - try { - Reflect.construct(Fake, []); - } catch (x) { - var control = x; - } - Reflect.construct(fn, [], Fake); - } else { - try { - Fake.call(); - } catch (x$20) { - control = x$20; - } - fn.call(Fake.prototype); - } - } else { - try { - throw Error(); - } catch (x$21) { - control = x$21; - } - (Fake = fn()) && - "function" === typeof Fake.catch && - Fake.catch(function () {}); - } - } catch (sample) { - if (sample && control && "string" === typeof sample.stack) - return [sample.stack, control.stack]; - } - return [null, null]; - } - }; - RunInRootFrame.DetermineComponentFrameRoot.displayName = - "DetermineComponentFrameRoot"; - var namePropDescriptor = Object.getOwnPropertyDescriptor( - RunInRootFrame.DetermineComponentFrameRoot, - "name" - ); - namePropDescriptor && - namePropDescriptor.configurable && - Object.defineProperty(RunInRootFrame.DetermineComponentFrameRoot, "name", { - value: "DetermineComponentFrameRoot" - }); - try { - var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(), - sampleStack = _RunInRootFrame$Deter[0], - controlStack = _RunInRootFrame$Deter[1]; - if (sampleStack && controlStack) { - var sampleLines = sampleStack.split("\n"), - controlLines = controlStack.split("\n"); - for ( - namePropDescriptor = RunInRootFrame = 0; - RunInRootFrame < sampleLines.length && - !sampleLines[RunInRootFrame].includes("DetermineComponentFrameRoot"); - - ) - RunInRootFrame++; - for ( - ; - namePropDescriptor < controlLines.length && - !controlLines[namePropDescriptor].includes( - "DetermineComponentFrameRoot" - ); - - ) - namePropDescriptor++; - if ( - RunInRootFrame === sampleLines.length || - namePropDescriptor === controlLines.length - ) - for ( - RunInRootFrame = sampleLines.length - 1, - namePropDescriptor = controlLines.length - 1; - 1 <= RunInRootFrame && - 0 <= namePropDescriptor && - sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]; - - ) - namePropDescriptor--; - for ( - ; - 1 <= RunInRootFrame && 0 <= namePropDescriptor; - RunInRootFrame--, namePropDescriptor-- - ) - if (sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) { - if (1 !== RunInRootFrame || 1 !== namePropDescriptor) { - do - if ( - (RunInRootFrame--, - namePropDescriptor--, - 0 > namePropDescriptor || - sampleLines[RunInRootFrame] !== - controlLines[namePropDescriptor]) - ) { - var frame = - "\n" + - sampleLines[RunInRootFrame].replace(" at new ", " at "); - fn.displayName && - frame.includes("") && - (frame = frame.replace("", fn.displayName)); - return frame; - } - while (1 <= RunInRootFrame && 0 <= namePropDescriptor); - } - break; - } - } - } finally { - (reentry = !1), (Error.prepareStackTrace = previousPrepareStackTrace); - } - return (previousPrepareStackTrace = fn ? fn.displayName || fn.name : "") - ? describeBuiltInComponentFrame(previousPrepareStackTrace) - : ""; -} -function describeComponentFrame(name, ownerName) { - var sourceInfo = ""; - ownerName && (sourceInfo = " (created by " + ownerName + ")"); - return "\n in " + (name || "Unknown") + sourceInfo; -} -function describeFunctionComponentFrame(fn) { - return enableComponentStackLocations - ? describeNativeComponentFrame(fn, !1) - : fn - ? describeComponentFrame(fn.displayName || fn.name || null, null) - : ""; -} -function describeFiber(fiber) { - switch (fiber.tag) { - case 26: - case 27: - case 5: - return describeBuiltInComponentFrame(fiber.type); - case 16: - return describeBuiltInComponentFrame("Lazy"); - case 13: - return describeBuiltInComponentFrame("Suspense"); - case 19: - return describeBuiltInComponentFrame("SuspenseList"); - case 0: - case 15: - return describeFunctionComponentFrame(fiber.type); - case 11: - return describeFunctionComponentFrame(fiber.type.render); - case 1: - return ( - (fiber = fiber.type), - (fiber = enableComponentStackLocations - ? describeNativeComponentFrame(fiber, !0) - : describeFunctionComponentFrame(fiber)), - fiber - ); - default: - return ""; - } -} -function getStackByFiberInDevAndProd(workInProgress) { - try { - var info = ""; - do - (info += describeFiber(workInProgress)), - (workInProgress = workInProgress.return); - while (workInProgress); - return info; - } catch (x) { - return "\nError generating stack: " + x.message + "\n" + x.stack; - } -} var SuspenseException = Error( "Suspense Exception: This is not a real error! It's an implementation detail of `use` to interrupt the current render. You must either rethrow it immediately, or move the `use` call outside of the `try/catch` block. Capturing without rethrowing will lead to unexpected behavior.\n\nTo handle async errors, wrap your component in an error boundary, or call the promise's `.catch` method and pass the result to `use`" ), @@ -5341,20 +5351,6 @@ function resolveDefaultProps(Component, baseProps) { } return baseProps; } -var CapturedStacks = new WeakMap(); -function createCapturedValueAtFiber(value, source) { - if ("object" === typeof value && null !== value) { - var stack = CapturedStacks.get(value); - "string" !== typeof stack && - ((stack = getStackByFiberInDevAndProd(source)), - CapturedStacks.set(value, stack)); - } else stack = getStackByFiberInDevAndProd(source); - return { value: value, source: source, stack: stack }; -} -function createCapturedValueFromError(value, stack) { - "string" === typeof stack && CapturedStacks.set(value, stack); - return { value: value, source: null, stack: stack }; -} var reportGlobalError = "function" === typeof reportError ? reportError @@ -5464,32 +5460,31 @@ function throwException( "object" === typeof value && "function" === typeof value.then ) { - var wakeable = value; - value = sourceFiber.tag; + var tag = sourceFiber.tag; 0 !== (sourceFiber.mode & 1) || - (0 !== value && 11 !== value && 15 !== value) || - ((value = sourceFiber.alternate) - ? ((sourceFiber.updateQueue = value.updateQueue), - (sourceFiber.memoizedState = value.memoizedState), - (sourceFiber.lanes = value.lanes)) + (0 !== tag && 11 !== tag && 15 !== tag) || + ((tag = sourceFiber.alternate) + ? ((sourceFiber.updateQueue = tag.updateQueue), + (sourceFiber.memoizedState = tag.memoizedState), + (sourceFiber.lanes = tag.lanes)) : ((sourceFiber.updateQueue = null), (sourceFiber.memoizedState = null))); - value = suspenseHandlerStackCursor.current; - if (null !== value) { - switch (value.tag) { + tag = suspenseHandlerStackCursor.current; + if (null !== tag) { + switch (tag.tag) { case 13: return ( sourceFiber.mode & 1 && (null === shellBoundary ? renderDidSuspendDelayIfPossible() - : null === value.alternate && + : null === tag.alternate && 0 === workInProgressRootExitStatus && (workInProgressRootExitStatus = 3)), - (value.flags &= -257), - 0 === (value.mode & 1) - ? value === returnFiber - ? (value.flags |= 65536) - : ((value.flags |= 128), + (tag.flags &= -257), + 0 === (tag.mode & 1) + ? tag === returnFiber + ? (tag.flags |= 65536) + : ((tag.flags |= 128), (sourceFiber.flags |= 131072), (sourceFiber.flags &= -52805), 1 === sourceFiber.tag @@ -5502,48 +5497,48 @@ function throwException( null === sourceFiber.alternate && (sourceFiber.tag = 28), (sourceFiber.lanes |= 2)) - : ((value.flags |= 65536), (value.lanes = rootRenderLanes)), - wakeable === noopSuspenseyCommitThenable - ? (value.flags |= 16384) - : ((returnFiber = value.updateQueue), + : ((tag.flags |= 65536), (tag.lanes = rootRenderLanes)), + value === noopSuspenseyCommitThenable + ? (tag.flags |= 16384) + : ((returnFiber = tag.updateQueue), null === returnFiber - ? (value.updateQueue = new Set([wakeable])) - : returnFiber.add(wakeable), - value.mode & 1 && - attachPingListener(root, wakeable, rootRenderLanes)), + ? (tag.updateQueue = new Set([value])) + : returnFiber.add(value), + tag.mode & 1 && + attachPingListener(root, value, rootRenderLanes)), !1 ); case 22: - if (value.mode & 1) + if (tag.mode & 1) return ( - (value.flags |= 65536), - wakeable === noopSuspenseyCommitThenable - ? (value.flags |= 16384) - : ((returnFiber = value.updateQueue), + (tag.flags |= 65536), + value === noopSuspenseyCommitThenable + ? (tag.flags |= 16384) + : ((returnFiber = tag.updateQueue), null === returnFiber ? ((returnFiber = { transitions: null, markerInstances: null, - retryQueue: new Set([wakeable]) + retryQueue: new Set([value]) }), - (value.updateQueue = returnFiber)) + (tag.updateQueue = returnFiber)) : ((sourceFiber = returnFiber.retryQueue), null === sourceFiber - ? (returnFiber.retryQueue = new Set([wakeable])) - : sourceFiber.add(wakeable)), - attachPingListener(root, wakeable, rootRenderLanes)), + ? (returnFiber.retryQueue = new Set([value])) + : sourceFiber.add(value)), + attachPingListener(root, value, rootRenderLanes)), !1 ); } throw Error( "Unexpected Suspense handler tag (" + - value.tag + + tag.tag + "). This is a bug in React." ); } if (1 === root.tag) return ( - attachPingListener(root, wakeable, rootRenderLanes), + attachPingListener(root, value, rootRenderLanes), renderDidSuspendDelayIfPossible(), !1 ); @@ -5551,58 +5546,58 @@ function throwException( "A component suspended while responding to synchronous input. This will cause the UI to be replaced with a loading indicator. To fix, updates that suspend should be wrapped with startTransition." ); } - wakeable = value = createCapturedValueAtFiber(value, sourceFiber); - 4 !== workInProgressRootExitStatus && (workInProgressRootExitStatus = 2); + tag = createCapturedValueAtFiber( + Error( + "There was an error during concurrent rendering but React was able to recover by instead synchronously rendering the entire root.", + { cause: value } + ), + sourceFiber + ); null === workInProgressRootConcurrentErrors - ? (workInProgressRootConcurrentErrors = [wakeable]) - : workInProgressRootConcurrentErrors.push(wakeable); + ? (workInProgressRootConcurrentErrors = [tag]) + : workInProgressRootConcurrentErrors.push(tag); + 4 !== workInProgressRootExitStatus && (workInProgressRootExitStatus = 2); if (null === returnFiber) return !0; - wakeable = returnFiber; + value = createCapturedValueAtFiber(value, sourceFiber); do { - switch (wakeable.tag) { + switch (returnFiber.tag) { case 3: return ( - (root = value), - (wakeable.flags |= 65536), - (rootRenderLanes &= -rootRenderLanes), - (wakeable.lanes |= rootRenderLanes), - (root = createRootErrorUpdate( - wakeable.stateNode, - root, - rootRenderLanes - )), - enqueueCapturedUpdate(wakeable, root), + (returnFiber.flags |= 65536), + (root = rootRenderLanes & -rootRenderLanes), + (returnFiber.lanes |= root), + (root = createRootErrorUpdate(returnFiber.stateNode, value, root)), + enqueueCapturedUpdate(returnFiber, root), !1 ); case 1: - returnFiber = value; - sourceFiber = wakeable.type; - var instance = wakeable.stateNode; if ( - 0 === (wakeable.flags & 128) && - ("function" === typeof sourceFiber.getDerivedStateFromError || - (null !== instance && - "function" === typeof instance.componentDidCatch && - (null === legacyErrorBoundariesThatAlreadyFailed || - !legacyErrorBoundariesThatAlreadyFailed.has(instance)))) + ((sourceFiber = returnFiber.type), + (tag = returnFiber.stateNode), + 0 === (returnFiber.flags & 128) && + ("function" === typeof sourceFiber.getDerivedStateFromError || + (null !== tag && + "function" === typeof tag.componentDidCatch && + (null === legacyErrorBoundariesThatAlreadyFailed || + !legacyErrorBoundariesThatAlreadyFailed.has(tag))))) ) return ( - (wakeable.flags |= 65536), + (returnFiber.flags |= 65536), (rootRenderLanes &= -rootRenderLanes), - (wakeable.lanes |= rootRenderLanes), + (returnFiber.lanes |= rootRenderLanes), (rootRenderLanes = createClassErrorUpdate(rootRenderLanes)), initializeClassErrorUpdate( rootRenderLanes, root, - wakeable, - returnFiber + returnFiber, + value ), - enqueueCapturedUpdate(wakeable, rootRenderLanes), + enqueueCapturedUpdate(returnFiber, rootRenderLanes), !1 ); } - wakeable = wakeable.return; - } while (null !== wakeable); + returnFiber = returnFiber.return; + } while (null !== returnFiber); return !1; } var ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner, @@ -6231,17 +6226,10 @@ function updateSuspenseComponent(current, workInProgress, renderLanes) { workInProgress.flags & 256 ? (pushPrimaryTreeSuspenseHandler(workInProgress), (workInProgress.flags &= -257), - (JSCompiler_temp = createCapturedValueFromError( - Error( - "There was an error while hydrating this Suspense boundary. Switched to client rendering." - ), - null - )), (workInProgress = retrySuspenseComponentWithoutHydrating( current, workInProgress, - renderLanes, - JSCompiler_temp + renderLanes ))) : null !== workInProgress.memoizedState ? (reuseSuspenseHandlerOnStack(workInProgress), @@ -6291,12 +6279,14 @@ function updateSuspenseComponent(current, workInProgress, renderLanes) { )), (nextProps.stack = ""), (nextProps.digest = JSCompiler_temp), - (JSCompiler_temp = createCapturedValueFromError(nextProps, null)), + (JSCompiler_temp = { value: nextProps, source: null, stack: null }), + null === hydrationErrors + ? (hydrationErrors = [JSCompiler_temp]) + : hydrationErrors.push(JSCompiler_temp), (workInProgress = retrySuspenseComponentWithoutHydrating( current, workInProgress, - renderLanes, - JSCompiler_temp + renderLanes )); else if ( ((JSCompiler_temp = 0 !== (renderLanes & current.childLanes)), @@ -6361,8 +6351,7 @@ function updateSuspenseComponent(current, workInProgress, renderLanes) { workInProgress = retrySuspenseComponentWithoutHydrating( current, workInProgress, - renderLanes, - null + renderLanes ); } else shim$1() @@ -6509,13 +6498,8 @@ function mountSuspenseFallbackChildren( function retrySuspenseComponentWithoutHydrating( current, workInProgress, - renderLanes, - recoverableError + renderLanes ) { - null !== recoverableError && - (null === hydrationErrors - ? (hydrationErrors = [recoverableError]) - : hydrationErrors.push(recoverableError)); reconcileChildFibers(workInProgress, current.child, null, renderLanes); current = mountSuspensePrimaryChildren( workInProgress, @@ -7402,14 +7386,14 @@ function cutOffTailIfNeeded(renderState, hasRenderedATailFallback) { break; case "collapsed": lastTailNode = renderState.tail; - for (var lastTailNode$81 = null; null !== lastTailNode; ) - null !== lastTailNode.alternate && (lastTailNode$81 = lastTailNode), + for (var lastTailNode$79 = null; null !== lastTailNode; ) + null !== lastTailNode.alternate && (lastTailNode$79 = lastTailNode), (lastTailNode = lastTailNode.sibling); - null === lastTailNode$81 + null === lastTailNode$79 ? hasRenderedATailFallback || null === renderState.tail ? (renderState.tail = null) : (renderState.tail.sibling = null) - : (lastTailNode$81.sibling = null); + : (lastTailNode$79.sibling = null); } } function bubbleProperties(completedWork) { @@ -7421,53 +7405,53 @@ function bubbleProperties(completedWork) { if (didBailout) if (0 !== (completedWork.mode & 2)) { for ( - var treeBaseDuration$83 = completedWork.selfBaseDuration, - child$84 = completedWork.child; - null !== child$84; + var treeBaseDuration$81 = completedWork.selfBaseDuration, + child$82 = completedWork.child; + null !== child$82; ) - (newChildLanes |= child$84.lanes | child$84.childLanes), - (subtreeFlags |= child$84.subtreeFlags & 31457280), - (subtreeFlags |= child$84.flags & 31457280), - (treeBaseDuration$83 += child$84.treeBaseDuration), - (child$84 = child$84.sibling); - completedWork.treeBaseDuration = treeBaseDuration$83; + (newChildLanes |= child$82.lanes | child$82.childLanes), + (subtreeFlags |= child$82.subtreeFlags & 31457280), + (subtreeFlags |= child$82.flags & 31457280), + (treeBaseDuration$81 += child$82.treeBaseDuration), + (child$82 = child$82.sibling); + completedWork.treeBaseDuration = treeBaseDuration$81; } else for ( - treeBaseDuration$83 = completedWork.child; - null !== treeBaseDuration$83; + treeBaseDuration$81 = completedWork.child; + null !== treeBaseDuration$81; ) (newChildLanes |= - treeBaseDuration$83.lanes | treeBaseDuration$83.childLanes), - (subtreeFlags |= treeBaseDuration$83.subtreeFlags & 31457280), - (subtreeFlags |= treeBaseDuration$83.flags & 31457280), - (treeBaseDuration$83.return = completedWork), - (treeBaseDuration$83 = treeBaseDuration$83.sibling); + treeBaseDuration$81.lanes | treeBaseDuration$81.childLanes), + (subtreeFlags |= treeBaseDuration$81.subtreeFlags & 31457280), + (subtreeFlags |= treeBaseDuration$81.flags & 31457280), + (treeBaseDuration$81.return = completedWork), + (treeBaseDuration$81 = treeBaseDuration$81.sibling); else if (0 !== (completedWork.mode & 2)) { - treeBaseDuration$83 = completedWork.actualDuration; - child$84 = completedWork.selfBaseDuration; + treeBaseDuration$81 = completedWork.actualDuration; + child$82 = completedWork.selfBaseDuration; for (var child = completedWork.child; null !== child; ) (newChildLanes |= child.lanes | child.childLanes), (subtreeFlags |= child.subtreeFlags), (subtreeFlags |= child.flags), - (treeBaseDuration$83 += child.actualDuration), - (child$84 += child.treeBaseDuration), + (treeBaseDuration$81 += child.actualDuration), + (child$82 += child.treeBaseDuration), (child = child.sibling); - completedWork.actualDuration = treeBaseDuration$83; - completedWork.treeBaseDuration = child$84; + completedWork.actualDuration = treeBaseDuration$81; + completedWork.treeBaseDuration = child$82; } else for ( - treeBaseDuration$83 = completedWork.child; - null !== treeBaseDuration$83; + treeBaseDuration$81 = completedWork.child; + null !== treeBaseDuration$81; ) (newChildLanes |= - treeBaseDuration$83.lanes | treeBaseDuration$83.childLanes), - (subtreeFlags |= treeBaseDuration$83.subtreeFlags), - (subtreeFlags |= treeBaseDuration$83.flags), - (treeBaseDuration$83.return = completedWork), - (treeBaseDuration$83 = treeBaseDuration$83.sibling); + treeBaseDuration$81.lanes | treeBaseDuration$81.childLanes), + (subtreeFlags |= treeBaseDuration$81.subtreeFlags), + (subtreeFlags |= treeBaseDuration$81.flags), + (treeBaseDuration$81.return = completedWork), + (treeBaseDuration$81 = treeBaseDuration$81.sibling); completedWork.subtreeFlags |= subtreeFlags; completedWork.childLanes = newChildLanes; return didBailout; @@ -8035,8 +8019,8 @@ function safelyDetachRef(current, nearestMountedAncestor) { recordLayoutEffectDuration(current); } else ref(null); - } catch (error$109) { - captureCommitPhaseError(current, nearestMountedAncestor, error$109); + } catch (error$107) { + captureCommitPhaseError(current, nearestMountedAncestor, error$107); } else ref.current = null; } @@ -8170,10 +8154,10 @@ function commitHookEffectListMount(flags, finishedWork) { injectedProfilingHooks.markComponentLayoutEffectMountStarted( finishedWork ); - var create$110 = effect.create, + var create$108 = effect.create, inst = effect.inst; - create$110 = create$110(); - inst.destroy = create$110; + create$108 = create$108(); + inst.destroy = create$108; 0 !== (flags & 8) ? null !== injectedProfilingHooks && "function" === @@ -8201,8 +8185,8 @@ function commitHookLayoutEffects(finishedWork, hookFlags) { } else try { commitHookEffectListMount(hookFlags, finishedWork); - } catch (error$112) { - captureCommitPhaseError(finishedWork, finishedWork.return, error$112); + } catch (error$110) { + captureCommitPhaseError(finishedWork, finishedWork.return, error$110); } } function commitClassCallbacks(finishedWork) { @@ -8282,11 +8266,11 @@ function commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) { } else try { finishedRoot.componentDidMount(); - } catch (error$113) { + } catch (error$111) { captureCommitPhaseError( finishedWork, finishedWork.return, - error$113 + error$111 ); } else { @@ -8304,11 +8288,11 @@ function commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) { current, finishedRoot.__reactInternalSnapshotBeforeUpdate ); - } catch (error$114) { + } catch (error$112) { captureCommitPhaseError( finishedWork, finishedWork.return, - error$114 + error$112 ); } recordLayoutEffectDuration(finishedWork); @@ -8319,11 +8303,11 @@ function commitLayoutEffectOnFiber(finishedRoot, current, finishedWork) { current, finishedRoot.__reactInternalSnapshotBeforeUpdate ); - } catch (error$115) { + } catch (error$113) { captureCommitPhaseError( finishedWork, finishedWork.return, - error$115 + error$113 ); } } @@ -8813,22 +8797,22 @@ function commitMutationEffectsOnFiber(finishedWork, root) { try { startLayoutEffectTimer(), commitHookEffectListUnmount(5, finishedWork, finishedWork.return); - } catch (error$124) { + } catch (error$122) { captureCommitPhaseError( finishedWork, finishedWork.return, - error$124 + error$122 ); } recordLayoutEffectDuration(finishedWork); } else try { commitHookEffectListUnmount(5, finishedWork, finishedWork.return); - } catch (error$125) { + } catch (error$123) { captureCommitPhaseError( finishedWork, finishedWork.return, - error$125 + error$123 ); } } @@ -8876,8 +8860,8 @@ function commitMutationEffectsOnFiber(finishedWork, root) { viewConfig.uiViewClassName, updatePayload ); - } catch (error$128) { - captureCommitPhaseError(finishedWork, finishedWork.return, error$128); + } catch (error$126) { + captureCommitPhaseError(finishedWork, finishedWork.return, error$126); } } break; @@ -8897,8 +8881,8 @@ function commitMutationEffectsOnFiber(finishedWork, root) { "RCTRawText", { text: current } ); - } catch (error$129) { - captureCommitPhaseError(finishedWork, finishedWork.return, error$129); + } catch (error$127) { + captureCommitPhaseError(finishedWork, finishedWork.return, error$127); } } break; @@ -9010,11 +8994,11 @@ function commitMutationEffectsOnFiber(finishedWork, root) { if (null === current) try { throw Error("Not yet implemented."); - } catch (error$118) { + } catch (error$116) { captureCommitPhaseError( finishedWork, finishedWork.return, - error$118 + error$116 ); } } else if ( @@ -9088,12 +9072,12 @@ function commitReconciliationEffects(finishedWork) { break; case 3: case 4: - var parent$119 = JSCompiler_inline_result.stateNode.containerInfo, - before$120 = getHostSibling(finishedWork); + var parent$117 = JSCompiler_inline_result.stateNode.containerInfo, + before$118 = getHostSibling(finishedWork); insertOrAppendPlacementNodeIntoContainer( finishedWork, - before$120, - parent$119 + before$118, + parent$117 ); break; default: @@ -9279,8 +9263,8 @@ function commitHookPassiveMountEffects(finishedWork, hookFlags) { } else try { commitHookEffectListMount(hookFlags, finishedWork); - } catch (error$133) { - captureCommitPhaseError(finishedWork, finishedWork.return, error$133); + } catch (error$131) { + captureCommitPhaseError(finishedWork, finishedWork.return, error$131); } } function commitOffscreenPassiveMountEffects(current, finishedWork) { @@ -10297,8 +10281,8 @@ function renderRootSync(root, lanes) { } workLoopSync(); break; - } catch (thrownValue$138) { - handleThrow(root, thrownValue$138); + } catch (thrownValue$136) { + handleThrow(root, thrownValue$136); } while (1); lanes && root.shellSuspendCounter++; @@ -10417,8 +10401,8 @@ function renderRootConcurrent(root, lanes) { } workLoopConcurrent(); break; - } catch (thrownValue$140) { - handleThrow(root, thrownValue$140); + } catch (thrownValue$138) { + handleThrow(root, thrownValue$138); } while (1); resetContextDependencies(); @@ -10784,7 +10768,7 @@ function flushPassiveEffects() { _finishedWork$memoize = finishedWork.memoizedProps, id = _finishedWork$memoize.id, onPostCommit = _finishedWork$memoize.onPostCommit, - commitTime$111 = commitTime, + commitTime$109 = commitTime, phase = null === finishedWork.alternate ? "mount" : "update"; currentUpdateIsNested && (phase = "nested-update"); "function" === typeof onPostCommit && @@ -10792,7 +10776,7 @@ function flushPassiveEffects() { id, phase, passiveEffectDuration, - commitTime$111 + commitTime$109 ); var parentFiber = finishedWork.return; b: for (; null !== parentFiber; ) { @@ -11553,10 +11537,10 @@ batchedUpdatesImpl = function (fn, a) { } }; var roots = new Map(), - devToolsConfig$jscomp$inline_1249 = { + devToolsConfig$jscomp$inline_1245 = { findFiberByHostInstance: getInstanceFromTag, bundleType: 0, - version: "19.0.0-canary-6eafad74", + version: "19.0.0-canary-ff4df008", rendererPackageName: "react-native-renderer", rendererConfig: { getInspectorDataForInstance: getInspectorDataForInstance, @@ -11586,10 +11570,10 @@ var roots = new Map(), } catch (err) {} return hook.checkDCE ? !0 : !1; })({ - bundleType: devToolsConfig$jscomp$inline_1249.bundleType, - version: devToolsConfig$jscomp$inline_1249.version, - rendererPackageName: devToolsConfig$jscomp$inline_1249.rendererPackageName, - rendererConfig: devToolsConfig$jscomp$inline_1249.rendererConfig, + bundleType: devToolsConfig$jscomp$inline_1245.bundleType, + version: devToolsConfig$jscomp$inline_1245.version, + rendererPackageName: devToolsConfig$jscomp$inline_1245.rendererPackageName, + rendererConfig: devToolsConfig$jscomp$inline_1245.rendererConfig, overrideHookState: null, overrideHookStateDeletePath: null, overrideHookStateRenamePath: null, @@ -11605,14 +11589,14 @@ var roots = new Map(), return null === fiber ? null : fiber.stateNode; }, findFiberByHostInstance: - devToolsConfig$jscomp$inline_1249.findFiberByHostInstance || + devToolsConfig$jscomp$inline_1245.findFiberByHostInstance || emptyFindFiberByHostInstance, findHostInstancesForRefresh: null, scheduleRefresh: null, scheduleRoot: null, setRefreshHandler: null, getCurrentFiber: null, - reconcilerVersion: "19.0.0-canary-6eafad74" + reconcilerVersion: "19.0.0-canary-ff4df008" }); exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = { computeComponentStackForErrorReporting: function (reactTag) {