@samitouri / QOS-React / commits / 03fda05d2c

[DevTools] Fix display of stack frames with anonymous sources (#34237)

Sebastian "Sebbie" Silbermann committed Aug 20, 2025 at 17:31 UTC 03fda05d2c112a1fb829ef663ca4e98d540adc36
3 files changed +19 -9
packages/react-devtools-shared/src/backend/utils/parseStackTrace.js
+3 -2
@@ -52,8 +52,8 @@ function parseStackTraceFromChromeStack(
52 if (filename === '<anonymous>') {
53 filename = '';
54 }
55 - const line = +(parsed[3] || parsed[6]);
56 - const col = +(parsed[4] || parsed[7]);
55 + const line = +(parsed[3] || parsed[6] || 0);
56 + const col = +(parsed[4] || parsed[7] || 0);
57 parsedFrames.push([name, filename, line, col, 0, 0, isAsync]);
58 }
59 return parsedFrames;
@@ -235,6 +235,7 @@ function collectStackTrace(
235 // at name (filename:0:0)
236 // at filename:0:0
237 // at async filename:0:0
238 +// at Array.map (<anonymous>)
239 const chromeFrameRegExp =
240 /^ *at (?:(.+) \((?:(.+):(\d+):(\d+)|\<anonymous\>)\)|(?:async )?(.+):(\d+):(\d+)|\<anonymous\>)$/;
241
packages/react-devtools-shared/src/devtools/views/Components/StackTraceView.js
+12 -7
@@ -63,13 +63,18 @@ export function CallSiteView({
63 return (
64 <div className={styles.CallSite}>
65 {functionName || virtualFunctionName}
66 - {' @ '}
67 - <span
68 - className={linkIsEnabled ? styles.Link : null}
69 - onClick={viewSource}
70 - title={url + ':' + line}>
71 - {formatLocationForDisplay(url, line, column)}
72 - </span>
66 + {url !== '' && (
67 + <>
68 + {' @ '}
69 + <span
70 + className={linkIsEnabled ? styles.Link : null}
71 + onClick={viewSource}
72 + title={url + ':' + line}>
73 + {formatLocationForDisplay(url, line, column)}
74 + </span>
75 + </>
76 + )}
77 +
78 <ElementBadges environmentName={environmentName} />
79 </div>
80 );
packages/react-devtools-shared/src/devtools/views/Components/formatLocationForDisplay.js
+4
@@ -40,5 +40,9 @@ export default function formatLocationForDisplay(
40 }
41 }
42
43 + if (line === 0) {
44 + return nameOnly;
45 + }
46 +
47 return `${nameOnly}:${line}`;
48 }