From 5f2b571878ec3b5884f5739915a974b98d7384d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Markb=C3=A5ge?= Date: Tue, 14 Oct 2025 09:34:57 -0400 Subject: [PATCH] [DevTools] Filter out built-in stack frames (#34828) Treat fake eval anonymous stacks as built-in. Hide built-in stack frames unless they're used to call into a non-ignored stack frame. The two main things to fix here is that 1) we're showing a linkified stack for fake anonymous and 2) we're showing only built-ins when the stack is completely internal. Meaning framework code is all noise. --- .../views/Components/StackTraceView.css | 10 ++++++--- .../views/Components/StackTraceView.js | 22 ++++++++++++------- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/packages/react-devtools-shared/src/devtools/views/Components/StackTraceView.css b/packages/react-devtools-shared/src/devtools/views/Components/StackTraceView.css index 20603ae7ccd08..574ceb0236987 100644 --- a/packages/react-devtools-shared/src/devtools/views/Components/StackTraceView.css +++ b/packages/react-devtools-shared/src/devtools/views/Components/StackTraceView.css @@ -2,13 +2,17 @@ padding: 0.25rem; } -.CallSite, .IgnoredCallSite { +.CallSite { display: block; padding-left: 1rem; } -.IgnoredCallSite { - opacity: 0.5; +.IgnoredCallSite, .BuiltInCallSite { + display: none; +} + +.CallSite + .BuiltInCallSite { + display: block; } .Link { diff --git a/packages/react-devtools-shared/src/devtools/views/Components/StackTraceView.js b/packages/react-devtools-shared/src/devtools/views/Components/StackTraceView.js index 57b5c4eef044a..d3d797f78103f 100644 --- a/packages/react-devtools-shared/src/devtools/views/Components/StackTraceView.js +++ b/packages/react-devtools-shared/src/devtools/views/Components/StackTraceView.js @@ -60,16 +60,22 @@ export function CallSiteView({ symbolicatedCallSite !== null ? symbolicatedCallSite.location : callSite; const ignored = symbolicatedCallSite !== null ? symbolicatedCallSite.ignored : false; - if (ignored) { - // TODO: Make an option to be able to toggle the display of ignore listed rows. - // Ideally this UI should be higher than a single Stack Trace so that there's not - // multiple buttons in a single inspection taking up space. - return null; - } + // TODO: Make an option to be able to toggle the display of ignore listed rows. + // Ideally this UI should be higher than a single Stack Trace so that there's not + // multiple buttons in a single inspection taking up space. + + const isBuiltIn = url === '' || url.startsWith(''); // This looks like a fake anonymous through eval. return ( -
+
{functionName || virtualFunctionName} - {url !== '' && ( + {!isBuiltIn && ( <> {' @ '}