From 26b49b7087353443e1fc8201326b645df015b530 Mon Sep 17 00:00:00 2001 From: Sebastian Markbage Date: Thu, 10 Jul 2025 18:44:58 -0400 Subject: [PATCH 1/2] Automatically filter out leading stack frames for creating a Promise --- .../react-server/src/ReactFlightServer.js | 52 +- .../ReactFlightAsyncDebugInfo-test.js | 761 +++++++++++------- 2 files changed, 534 insertions(+), 279 deletions(-) diff --git a/packages/react-server/src/ReactFlightServer.js b/packages/react-server/src/ReactFlightServer.js index 1287e02586a6..694ebd465acc 100644 --- a/packages/react-server/src/ReactFlightServer.js +++ b/packages/react-server/src/ReactFlightServer.js @@ -194,6 +194,49 @@ function devirtualizeURL(url: string): string { return url; } +function isPromiseCreationInternal(url: string, functionName: string): boolean { + // Various internals of the JS VM can create Promises but the call frame of the + // internals are not very interesting for our purposes so we need to skip those. + if (url === 'node:internal/async_hooks') { + // Ignore the stack frames from the async hooks themselves. + return true; + } + if (url !== '') { + return false; + } + switch (functionName) { + case 'new Promise': + case 'Function.withResolvers': + case 'Function.reject': + case 'Function.resolve': + case 'Function.all': + case 'Function.allSettled': + case 'Function.race': + case 'Function.try': + return true; + default: + return false; + } +} + +function stripLeadingPromiseCreationFrames( + stack: ReactStackTrace, +): ReactStackTrace { + for (let i = 0; i < stack.length; i++) { + const callsite = stack[i]; + const functionName = callsite[0]; + const url = callsite[1]; + if (!isPromiseCreationInternal(url, functionName)) { + if (i > 0) { + return stack.slice(i); + } else { + return stack; + } + } + } + return []; +} + function findCalledFunctionNameFromStackTrace( request: Request, stack: ReactStackTrace, @@ -207,11 +250,7 @@ function findCalledFunctionNameFromStackTrace( const url = devirtualizeURL(callsite[1]); const lineNumber = callsite[2]; const columnNumber = callsite[3]; - if (functionName === 'new Promise') { - // Ignore Promise constructors. - } else if (url === 'node:internal/async_hooks') { - // Ignore the stack frames from the async hooks themselves. - } else if (filterStackFrame(url, functionName, lineNumber, columnNumber)) { + if (filterStackFrame(url, functionName, lineNumber, columnNumber)) { if (bestMatch === '') { // If we had no good stack frames for internal calls, just use the last // first party function name. @@ -4213,7 +4252,8 @@ function serializeIONode( let stack = null; let name = ''; if (ioNode.stack !== null) { - const fullStack = ioNode.stack; + // The stack can contain some leading internal frames for the construction of the promise that we skip. + const fullStack = stripLeadingPromiseCreationFrames(ioNode.stack); stack = filterStackTrace(request, fullStack); name = findCalledFunctionNameFromStackTrace(request, fullStack); // The name can include the object that this was called on but sometimes that's diff --git a/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js b/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js index 671619060a46..5baf8dd35679 100644 --- a/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js +++ b/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js @@ -107,7 +107,6 @@ function getDebugInfo(obj) { function filterStackFrame(filename, functionName) { return ( - filename !== '' && !filename.startsWith('node:') && !filename.includes('node_modules') && // Filter out our own internal source code since it'll typically be in node_modules @@ -234,9 +233,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 203, + 202, 109, - 183, + 182, 50, ], ], @@ -258,9 +257,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 203, + 202, 109, - 183, + 182, 50, ], ], @@ -269,25 +268,25 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "delay", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 161, - 12, 160, + 12, + 159, 3, ], [ "getData", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 185, - 13, 184, + 13, + 183, 5, ], [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 192, - 26, 191, + 26, + 190, 5, ], ], @@ -306,9 +305,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 203, + 202, 109, - 183, + 182, 50, ], ], @@ -317,17 +316,17 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "getData", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 185, - 13, 184, + 13, + 183, 5, ], [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 192, - 26, 191, + 26, + 190, 5, ], ], @@ -352,9 +351,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 203, + 202, 109, - 183, + 182, 50, ], ], @@ -363,25 +362,25 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "delay", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 161, - 12, 160, + 12, + 159, 3, ], [ "getData", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 186, + 185, 21, - 184, + 183, 5, ], [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 192, - 20, 191, + 20, + 190, 5, ], ], @@ -402,9 +401,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 203, + 202, 109, - 183, + 182, 50, ], ], @@ -413,17 +412,17 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "getData", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 187, + 186, 21, - 184, + 183, 5, ], [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 192, - 20, 191, + 20, + 190, 5, ], ], @@ -443,9 +442,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 194, + 193, 60, - 191, + 190, 5, ], ], @@ -467,9 +466,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 203, + 202, 109, - 183, + 182, 50, ], ], @@ -478,17 +477,17 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "delay", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 161, - 12, 160, + 12, + 159, 3, ], [ "getData", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 186, + 185, 21, - 184, + 183, 5, ], ], @@ -507,9 +506,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 194, + 193, 60, - 191, + 190, 5, ], ], @@ -518,9 +517,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "InnerComponent", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 200, + 199, 35, - 197, + 196, 5, ], ], @@ -594,11 +593,19 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 558, + 557, 40, - 539, + 538, 49, ], + [ + "new Promise", + "", + 0, + 0, + 0, + 0, + ], ], }, { @@ -618,36 +625,44 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 558, + 557, 40, - 539, + 538, 49, ], + [ + "new Promise", + "", + 0, + 0, + 0, + 0, + ], ], }, "stack": [ [ "delay", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 161, - 12, 160, + 12, + 159, 3, ], [ "getData", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 541, - 13, 540, + 13, + 539, 5, ], [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 546, - 36, 545, + 36, + 544, 5, ], ], @@ -666,28 +681,36 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 558, + 557, 40, - 539, + 538, 49, ], + [ + "new Promise", + "", + 0, + 0, + 0, + 0, + ], ], }, "stack": [ [ "getData", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 541, - 13, 540, + 13, + 539, 5, ], [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 546, - 36, 545, + 36, + 544, 5, ], ], @@ -707,9 +730,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 548, + 547, 60, - 545, + 544, 5, ], ], @@ -728,36 +751,44 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 558, + 557, 40, - 539, + 538, 49, ], + [ + "new Promise", + "", + 0, + 0, + 0, + 0, + ], ], }, "stack": [ [ "delay", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 161, - 12, 160, + 12, + 159, 3, ], [ "getData", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 541, - 13, 540, + 13, + 539, 5, ], [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 547, + 546, 22, - 545, + 544, 5, ], ], @@ -776,9 +807,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 548, + 547, 60, - 545, + 544, 5, ], ], @@ -787,9 +818,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "InnerComponent", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 554, + 553, 40, - 551, + 550, 5, ], ], @@ -852,9 +883,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 821, + 852, 109, - 808, + 839, 80, ], ], @@ -873,9 +904,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 821, + 852, 109, - 808, + 839, 80, ], ], @@ -938,9 +969,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 907, + 938, 109, - 898, + 929, 94, ], ], @@ -1011,9 +1042,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 980, + 1011, 109, - 956, + 987, 50, ], ], @@ -1095,9 +1126,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1064, + 1095, 109, - 1047, + 1078, 63, ], ], @@ -1114,17 +1145,17 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "fetchThirdParty", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 168, + 167, 40, - 166, + 165, 3, ], [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1060, + 1091, 24, - 1059, + 1090, 5, ], ], @@ -1146,17 +1177,17 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "fetchThirdParty", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 168, + 167, 40, - 166, + 165, 3, ], [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1060, + 1091, 24, - 1059, + 1090, 5, ], ], @@ -1165,25 +1196,25 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "delay", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 161, - 12, 160, + 12, + 159, 3, ], [ "getData", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1049, + 1080, 13, - 1048, + 1079, 5, ], [ "ThirdPartyComponent", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1055, + 1086, 24, - 1054, + 1085, 5, ], ], @@ -1202,17 +1233,17 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "fetchThirdParty", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 168, + 167, 40, - 166, + 165, 3, ], [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1060, + 1091, 24, - 1059, + 1090, 5, ], ], @@ -1221,17 +1252,17 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "getData", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1049, + 1080, 13, - 1048, + 1079, 5, ], [ "ThirdPartyComponent", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1055, + 1086, 24, - 1054, + 1085, 5, ], ], @@ -1256,17 +1287,17 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "fetchThirdParty", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 168, + 167, 40, - 166, + 165, 3, ], [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1060, + 1091, 24, - 1059, + 1090, 5, ], ], @@ -1275,25 +1306,25 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "delay", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 161, - 12, 160, + 12, + 159, 3, ], [ "getData", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1050, + 1081, 13, - 1048, + 1079, 5, ], [ "ThirdPartyComponent", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1055, + 1086, 18, - 1054, + 1085, 5, ], ], @@ -1312,17 +1343,17 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "fetchThirdParty", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 168, + 167, 40, - 166, + 165, 3, ], [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1060, + 1091, 24, - 1059, + 1090, 5, ], ], @@ -1331,17 +1362,17 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "getData", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1050, + 1081, 13, - 1048, + 1079, 5, ], [ "ThirdPartyComponent", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1055, + 1086, 18, - 1054, + 1085, 5, ], ], @@ -1416,11 +1447,19 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1380, + 1411, 40, - 1363, + 1394, 62, ], + [ + "new Promise", + "", + 0, + 0, + 0, + 0, + ], ], }, { @@ -1440,36 +1479,44 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1380, + 1411, 40, - 1363, + 1394, 62, ], + [ + "new Promise", + "", + 0, + 0, + 0, + 0, + ], ], }, "stack": [ [ "delay", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 161, - 12, 160, + 12, + 159, 3, ], [ "getData", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1365, + 1396, 13, - 1364, + 1395, 25, ], [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1375, + 1406, 13, - 1374, + 1405, 5, ], ], @@ -1488,28 +1535,36 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1380, + 1411, 40, - 1363, + 1394, 62, ], + [ + "new Promise", + "", + 0, + 0, + 0, + 0, + ], ], }, "stack": [ [ "getData", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1365, + 1396, 13, - 1364, + 1395, 25, ], [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1375, + 1406, 13, - 1374, + 1405, 5, ], ], @@ -1529,9 +1584,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1376, + 1407, 60, - 1374, + 1405, 5, ], ], @@ -1553,36 +1608,44 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1380, + 1411, 40, - 1363, + 1394, 62, ], + [ + "new Promise", + "", + 0, + 0, + 0, + 0, + ], ], }, "stack": [ [ "delay", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 161, - 12, 160, + 12, + 159, 3, ], [ "getData", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1365, + 1396, 13, - 1364, + 1395, 25, ], [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1375, + 1406, 13, - 1374, + 1405, 5, ], ], @@ -1601,9 +1664,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1376, + 1407, 60, - 1374, + 1405, 5, ], ], @@ -1612,9 +1675,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Child", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1370, + 1401, 28, - 1369, + 1400, 5, ], ], @@ -1685,11 +1748,19 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1649, + 1712, 40, - 1633, + 1696, 57, ], + [ + "new Promise", + "", + 0, + 0, + 0, + 0, + ], ], }, { @@ -1709,36 +1780,44 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1649, + 1712, 40, - 1633, + 1696, 57, ], + [ + "new Promise", + "", + 0, + 0, + 0, + 0, + ], ], }, "stack": [ [ "delay", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 161, - 12, 160, + 12, + 159, 3, ], [ "getData", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1635, + 1698, 13, - 1634, + 1697, 25, ], [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1644, + 1707, 23, - 1643, + 1706, 5, ], ], @@ -1757,28 +1836,36 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1649, + 1712, 40, - 1633, + 1696, 57, ], + [ + "new Promise", + "", + 0, + 0, + 0, + 0, + ], ], }, "stack": [ [ "getData", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1635, + 1698, 13, - 1634, + 1697, 25, ], [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1644, + 1707, 23, - 1643, + 1706, 5, ], ], @@ -1798,9 +1885,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1645, + 1708, 60, - 1643, + 1706, 5, ], ], @@ -1819,36 +1906,44 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1649, + 1712, 40, - 1633, + 1696, 57, ], + [ + "new Promise", + "", + 0, + 0, + 0, + 0, + ], ], }, "stack": [ [ "delay", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 161, - 12, 160, + 12, + 159, 3, ], [ "getData", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1635, + 1698, 13, - 1634, + 1697, 25, ], [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1644, + 1707, 23, - 1643, + 1706, 5, ], ], @@ -1927,11 +2022,19 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1891, + 1986, 40, - 1873, + 1968, 80, ], + [ + "new Promise", + "", + 0, + 0, + 0, + 0, + ], ], }, { @@ -1951,36 +2054,44 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1891, + 1986, 40, - 1873, + 1968, 80, ], + [ + "new Promise", + "", + 0, + 0, + 0, + 0, + ], ], }, "stack": [ [ "delay", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 161, - 12, 160, + 12, + 159, 3, ], [ "delayTrice", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1881, + 1976, 13, - 1879, + 1974, 5, ], [ "Bar", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1886, + 1981, 13, - 1885, + 1980, 5, ], ], @@ -1999,28 +2110,36 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1891, + 1986, 40, - 1873, + 1968, 80, ], + [ + "new Promise", + "", + 0, + 0, + 0, + 0, + ], ], }, "stack": [ [ "delayTrice", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1881, + 1976, 13, - 1879, + 1974, 5, ], [ "Bar", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1886, + 1981, 13, - 1885, + 1980, 5, ], ], @@ -2042,44 +2161,52 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1891, + 1986, 40, - 1873, + 1968, 80, ], + [ + "new Promise", + "", + 0, + 0, + 0, + 0, + ], ], }, "stack": [ [ "delay", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 161, - 12, 160, + 12, + 159, 3, ], [ "delayTwice", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1875, + 1970, 13, - 1874, + 1969, 5, ], [ "delayTrice", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1880, + 1975, 15, - 1879, + 1974, 5, ], [ "Bar", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1886, + 1981, 13, - 1885, + 1980, 5, ], ], @@ -2098,36 +2225,44 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1891, + 1986, 40, - 1873, + 1968, 80, ], + [ + "new Promise", + "", + 0, + 0, + 0, + 0, + ], ], }, "stack": [ [ "delayTwice", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1875, + 1970, 13, - 1874, + 1969, 5, ], [ "delayTrice", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1880, + 1975, 15, - 1879, + 1974, 5, ], [ "Bar", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1886, + 1981, 13, - 1885, + 1980, 5, ], ], @@ -2149,28 +2284,36 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1891, + 1986, 40, - 1873, + 1968, 80, ], + [ + "new Promise", + "", + 0, + 0, + 0, + 0, + ], ], }, "stack": [ [ "delay", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 161, - 12, 160, + 12, + 159, 3, ], [ "delayTwice", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1876, + 1971, 13, - 1874, + 1969, 5, ], ], @@ -2189,20 +2332,28 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1891, + 1986, 40, - 1873, + 1968, 80, ], + [ + "new Promise", + "", + 0, + 0, + 0, + 0, + ], ], }, "stack": [ [ "delayTwice", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1876, + 1971, 13, - 1874, + 1969, 5, ], ], @@ -2263,9 +2414,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 2232, + 2383, 109, - 2221, + 2372, 58, ], ], @@ -2287,9 +2438,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 2232, + 2383, 109, - 2221, + 2372, 58, ], ], @@ -2298,25 +2449,25 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "delay", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 161, - 12, 160, + 12, + 159, 3, ], [ "getData", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 2223, + 2374, 14, - 2222, + 2373, 5, ], [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 2229, + 2380, 20, - 2228, + 2379, 5, ], ], @@ -2335,9 +2486,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 2232, + 2383, 109, - 2221, + 2372, 58, ], ], @@ -2346,17 +2497,17 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "getData", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 2223, + 2374, 23, - 2222, + 2373, 5, ], [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 2229, + 2380, 20, - 2228, + 2379, 5, ], ], @@ -2423,11 +2574,19 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 2387, + 2538, 40, - 2375, + 2526, 56, ], + [ + "new Promise", + "", + 0, + 0, + 0, + 0, + ], ], }, { @@ -2447,28 +2606,36 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 2387, + 2538, 40, - 2375, + 2526, 56, ], + [ + "new Promise", + "", + 0, + 0, + 0, + 0, + ], ], }, "stack": [ [ "delay", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 161, - 12, 160, + 12, + 159, 3, ], [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 2383, + 2534, 20, - 2382, + 2533, 5, ], ], @@ -2487,20 +2654,28 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 2387, + 2538, 40, - 2375, + 2526, 56, ], + [ + "new Promise", + "", + 0, + 0, + 0, + 0, + ], ], }, "stack": [ [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 2383, + 2534, 20, - 2382, + 2533, 5, ], ], @@ -2581,11 +2756,19 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 2540, + 2715, 40, - 2519, + 2694, 42, ], + [ + "new Promise", + "", + 0, + 0, + 0, + 0, + ], ], }, { @@ -2605,28 +2788,36 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 2540, + 2715, 40, - 2519, + 2694, 42, ], + [ + "new Promise", + "", + 0, + 0, + 0, + 0, + ], ], }, "stack": [ [ "", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 2526, + 2701, 15, - 2525, + 2700, 15, ], [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 2535, + 2710, 19, - 2534, + 2709, 5, ], ], @@ -2645,28 +2836,36 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 2540, + 2715, 40, - 2519, + 2694, 42, ], + [ + "new Promise", + "", + 0, + 0, + 0, + 0, + ], ], }, "stack": [ [ "", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 2526, + 2701, 15, - 2525, + 2700, 15, ], [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 2535, + 2710, 19, - 2534, + 2709, 5, ], ], @@ -2688,20 +2887,28 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 2540, + 2715, 40, - 2519, + 2694, 42, ], + [ + "new Promise", + "", + 0, + 0, + 0, + 0, + ], ], }, "stack": [ [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 2535, + 2710, 25, - 2534, + 2709, 5, ], ], @@ -2720,20 +2927,28 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 2540, + 2715, 40, - 2519, + 2694, 42, ], + [ + "new Promise", + "", + 0, + 0, + 0, + 0, + ], ], }, "stack": [ [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 2535, + 2710, 25, - 2534, + 2709, 5, ], ], From 534b0568e2fa2faaef10a10268ccfd33a76aa7aa Mon Sep 17 00:00:00 2001 From: Sebastian Markbage Date: Wed, 16 Jul 2025 13:50:55 -0400 Subject: [PATCH 2/2] Skip internal awaits --- .../react-server/src/ReactFlightServer.js | 35 +- .../ReactFlightAsyncDebugInfo-test.js | 392 +++++++++--------- 2 files changed, 228 insertions(+), 199 deletions(-) diff --git a/packages/react-server/src/ReactFlightServer.js b/packages/react-server/src/ReactFlightServer.js index 694ebd465acc..c3c7d41612ca 100644 --- a/packages/react-server/src/ReactFlightServer.js +++ b/packages/react-server/src/ReactFlightServer.js @@ -314,13 +314,44 @@ function hasUnfilteredFrame(request: Request, stack: ReactStackTrace): boolean { return false; } +function isPromiseAwaitInternal(url: string, functionName: string): boolean { + // Various internals of the JS VM can await internally on a Promise. If those are at + // the top of the stack then we don't want to consider them as internal frames. The + // true "await" conceptually is the thing that called the helper. + // Ideally we'd also include common third party helpers for this. + if (url === 'node:internal/async_hooks') { + // Ignore the stack frames from the async hooks themselves. + return true; + } + if (url !== '') { + return false; + } + switch (functionName) { + case 'Promise.then': + case 'Promise.catch': + case 'Promise.finally': + case 'Function.reject': + case 'Function.resolve': + case 'Function.all': + case 'Function.allSettled': + case 'Function.race': + case 'Function.try': + return true; + default: + return false; + } +} + export function isAwaitInUserspace( request: Request, stack: ReactStackTrace, ): boolean { let firstFrame = 0; - while (stack.length > firstFrame && stack[firstFrame][0] === 'Promise.then') { - // Skip Promise.then frame itself. + while ( + stack.length > firstFrame && + isPromiseAwaitInternal(stack[firstFrame][1], stack[firstFrame][0]) + ) { + // Skip the internal frame that awaits itself. firstFrame++; } if (stack.length > firstFrame) { diff --git a/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js b/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js index 5baf8dd35679..b222ef6c04cf 100644 --- a/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js +++ b/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js @@ -386,9 +386,7 @@ describe('ReactFlightAsyncDebugInfo', () => { ], "start": 0, "value": { - "value": [ - , - ], + "value": undefined, }, }, "env": "Server", @@ -593,9 +591,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 557, + 555, 40, - 538, + 536, 49, ], [ @@ -625,9 +623,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 557, + 555, 40, - 538, + 536, 49, ], [ @@ -652,17 +650,17 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "getData", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 540, + 538, 13, - 539, + 537, 5, ], [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 545, + 543, 36, - 544, + 542, 5, ], ], @@ -681,9 +679,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 557, + 555, 40, - 538, + 536, 49, ], [ @@ -700,17 +698,17 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "getData", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 540, + 538, 13, - 539, + 537, 5, ], [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 545, + 543, 36, - 544, + 542, 5, ], ], @@ -730,9 +728,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 547, + 545, 60, - 544, + 542, 5, ], ], @@ -751,9 +749,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 557, + 555, 40, - 538, + 536, 49, ], [ @@ -778,17 +776,17 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "getData", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 540, + 538, 13, - 539, + 537, 5, ], [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 546, - 22, 544, + 22, + 542, 5, ], ], @@ -807,9 +805,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 547, + 545, 60, - 544, + 542, 5, ], ], @@ -818,9 +816,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "InnerComponent", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 553, + 551, 40, - 550, + 548, 5, ], ], @@ -883,9 +881,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 852, + 850, 109, - 839, + 837, 80, ], ], @@ -904,9 +902,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 852, + 850, 109, - 839, + 837, 80, ], ], @@ -969,9 +967,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 938, + 936, 109, - 929, + 927, 94, ], ], @@ -1042,9 +1040,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1011, + 1009, 109, - 987, + 985, 50, ], ], @@ -1126,9 +1124,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1095, + 1093, 109, - 1078, + 1076, 63, ], ], @@ -1153,9 +1151,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1091, + 1089, 24, - 1090, + 1088, 5, ], ], @@ -1185,9 +1183,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1091, + 1089, 24, - 1090, + 1088, 5, ], ], @@ -1204,17 +1202,17 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "getData", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1080, + 1078, 13, - 1079, + 1077, 5, ], [ "ThirdPartyComponent", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1086, + 1084, 24, - 1085, + 1083, 5, ], ], @@ -1241,9 +1239,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1091, + 1089, 24, - 1090, + 1088, 5, ], ], @@ -1252,17 +1250,17 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "getData", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1080, + 1078, 13, - 1079, + 1077, 5, ], [ "ThirdPartyComponent", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1086, + 1084, 24, - 1085, + 1083, 5, ], ], @@ -1295,9 +1293,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1091, + 1089, 24, - 1090, + 1088, 5, ], ], @@ -1314,17 +1312,17 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "getData", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1081, - 13, 1079, + 13, + 1077, 5, ], [ "ThirdPartyComponent", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1086, + 1084, 18, - 1085, + 1083, 5, ], ], @@ -1351,9 +1349,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1091, + 1089, 24, - 1090, + 1088, 5, ], ], @@ -1362,17 +1360,17 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "getData", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1081, - 13, 1079, + 13, + 1077, 5, ], [ "ThirdPartyComponent", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1086, + 1084, 18, - 1085, + 1083, 5, ], ], @@ -1447,9 +1445,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1411, + 1409, 40, - 1394, + 1392, 62, ], [ @@ -1479,9 +1477,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1411, + 1409, 40, - 1394, + 1392, 62, ], [ @@ -1506,17 +1504,17 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "getData", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1396, + 1394, 13, - 1395, + 1393, 25, ], [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1406, + 1404, 13, - 1405, + 1403, 5, ], ], @@ -1535,9 +1533,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1411, + 1409, 40, - 1394, + 1392, 62, ], [ @@ -1554,17 +1552,17 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "getData", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1396, + 1394, 13, - 1395, + 1393, 25, ], [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1406, + 1404, 13, - 1405, + 1403, 5, ], ], @@ -1584,9 +1582,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1407, - 60, 1405, + 60, + 1403, 5, ], ], @@ -1608,9 +1606,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1411, + 1409, 40, - 1394, + 1392, 62, ], [ @@ -1635,17 +1633,17 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "getData", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1396, + 1394, 13, - 1395, + 1393, 25, ], [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1406, + 1404, 13, - 1405, + 1403, 5, ], ], @@ -1664,9 +1662,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1407, - 60, 1405, + 60, + 1403, 5, ], ], @@ -1675,9 +1673,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Child", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1401, + 1399, 28, - 1400, + 1398, 5, ], ], @@ -1748,9 +1746,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1712, + 1710, 40, - 1696, + 1694, 57, ], [ @@ -1780,9 +1778,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1712, + 1710, 40, - 1696, + 1694, 57, ], [ @@ -1807,17 +1805,17 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "getData", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1698, + 1696, 13, - 1697, + 1695, 25, ], [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1707, + 1705, 23, - 1706, + 1704, 5, ], ], @@ -1836,9 +1834,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1712, + 1710, 40, - 1696, + 1694, 57, ], [ @@ -1855,17 +1853,17 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "getData", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1698, + 1696, 13, - 1697, + 1695, 25, ], [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1707, + 1705, 23, - 1706, + 1704, 5, ], ], @@ -1885,9 +1883,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1708, - 60, 1706, + 60, + 1704, 5, ], ], @@ -1906,9 +1904,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1712, + 1710, 40, - 1696, + 1694, 57, ], [ @@ -1933,17 +1931,17 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "getData", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1698, + 1696, 13, - 1697, + 1695, 25, ], [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1707, + 1705, 23, - 1706, + 1704, 5, ], ], @@ -2022,9 +2020,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1986, + 1984, 40, - 1968, + 1966, 80, ], [ @@ -2054,9 +2052,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1986, + 1984, 40, - 1968, + 1966, 80, ], [ @@ -2081,17 +2079,17 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "delayTrice", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1976, - 13, 1974, + 13, + 1972, 5, ], [ "Bar", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1981, + 1979, 13, - 1980, + 1978, 5, ], ], @@ -2110,9 +2108,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1986, + 1984, 40, - 1968, + 1966, 80, ], [ @@ -2129,17 +2127,17 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "delayTrice", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1976, - 13, 1974, + 13, + 1972, 5, ], [ "Bar", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1981, + 1979, 13, - 1980, + 1978, 5, ], ], @@ -2161,9 +2159,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1986, + 1984, 40, - 1968, + 1966, 80, ], [ @@ -2188,25 +2186,25 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "delayTwice", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1970, + 1968, 13, - 1969, + 1967, 5, ], [ "delayTrice", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1975, + 1973, 15, - 1974, + 1972, 5, ], [ "Bar", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1981, + 1979, 13, - 1980, + 1978, 5, ], ], @@ -2225,9 +2223,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1986, + 1984, 40, - 1968, + 1966, 80, ], [ @@ -2244,25 +2242,25 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "delayTwice", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1970, + 1968, 13, - 1969, + 1967, 5, ], [ "delayTrice", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1975, + 1973, 15, - 1974, + 1972, 5, ], [ "Bar", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1981, + 1979, 13, - 1980, + 1978, 5, ], ], @@ -2284,9 +2282,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1986, + 1984, 40, - 1968, + 1966, 80, ], [ @@ -2311,9 +2309,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "delayTwice", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1971, - 13, 1969, + 13, + 1967, 5, ], ], @@ -2332,9 +2330,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1986, + 1984, 40, - 1968, + 1966, 80, ], [ @@ -2351,9 +2349,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "delayTwice", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 1971, - 13, 1969, + 13, + 1967, 5, ], ], @@ -2414,9 +2412,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 2383, + 2381, 109, - 2372, + 2370, 58, ], ], @@ -2438,9 +2436,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 2383, + 2381, 109, - 2372, + 2370, 58, ], ], @@ -2457,17 +2455,17 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "getData", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 2374, + 2372, 14, - 2373, + 2371, 5, ], [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 2380, + 2378, 20, - 2379, + 2377, 5, ], ], @@ -2486,9 +2484,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 2383, + 2381, 109, - 2372, + 2370, 58, ], ], @@ -2497,17 +2495,17 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "getData", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 2374, + 2372, 23, - 2373, + 2371, 5, ], [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 2380, + 2378, 20, - 2379, + 2377, 5, ], ], @@ -2574,9 +2572,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 2538, + 2536, 40, - 2526, + 2524, 56, ], [ @@ -2606,9 +2604,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 2538, + 2536, 40, - 2526, + 2524, 56, ], [ @@ -2633,9 +2631,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 2534, + 2532, 20, - 2533, + 2531, 5, ], ], @@ -2654,9 +2652,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 2538, + 2536, 40, - 2526, + 2524, 56, ], [ @@ -2673,9 +2671,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 2534, + 2532, 20, - 2533, + 2531, 5, ], ], @@ -2756,9 +2754,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 2715, + 2713, 40, - 2694, + 2692, 42, ], [ @@ -2788,9 +2786,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 2715, + 2713, 40, - 2694, + 2692, 42, ], [ @@ -2807,17 +2805,17 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 2701, + 2699, 15, - 2700, + 2698, 15, ], [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 2710, + 2708, 19, - 2709, + 2707, 5, ], ], @@ -2836,9 +2834,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 2715, + 2713, 40, - 2694, + 2692, 42, ], [ @@ -2855,17 +2853,17 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 2701, + 2699, 15, - 2700, + 2698, 15, ], [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 2710, + 2708, 19, - 2709, + 2707, 5, ], ], @@ -2887,9 +2885,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 2715, + 2713, 40, - 2694, + 2692, 42, ], [ @@ -2906,9 +2904,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 2710, + 2708, 25, - 2709, + 2707, 5, ], ], @@ -2927,9 +2925,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Object.", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 2715, + 2713, 40, - 2694, + 2692, 42, ], [ @@ -2946,9 +2944,9 @@ describe('ReactFlightAsyncDebugInfo', () => { [ "Component", "/packages/react-server/src/__tests__/ReactFlightAsyncDebugInfo-test.js", - 2710, + 2708, 25, - 2709, + 2707, 5, ], ],