parseStackTraceFromChromeStack() — react Function Reference
Architecture documentation for the parseStackTraceFromChromeStack() function in parseStackTrace.js from the react codebase.
Entity Profile
Dependency Diagram
graph TD 73570ae4_cbd2_53ab_b96e_f8a6ae679f52["parseStackTraceFromChromeStack()"] c70671e1_42cb_8c92_da33_5303a72f89b1["parseStackTrace.js"] 73570ae4_cbd2_53ab_b96e_f8a6ae679f52 -->|defined in| c70671e1_42cb_8c92_da33_5303a72f89b1 aa8dcbb7_2a63_5ee0_2383_fe507f8a453f["parseStackTraceFromString()"] aa8dcbb7_2a63_5ee0_2383_fe507f8a453f -->|calls| 73570ae4_cbd2_53ab_b96e_f8a6ae679f52 style 73570ae4_cbd2_53ab_b96e_f8a6ae679f52 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/react-devtools-shared/src/backend/utils/parseStackTrace.js lines 13–60
function parseStackTraceFromChromeStack(
stack: string,
skipFrames: number,
): ReactStackTrace {
if (stack.startsWith('Error: react-stack-top-frame\n')) {
// V8's default formatting prefixes with the error message which we
// don't want/need.
stack = stack.slice(29);
}
let idx = stack.indexOf('react_stack_bottom_frame');
if (idx === -1) {
idx = stack.indexOf('react-stack-bottom-frame');
}
if (idx !== -1) {
idx = stack.lastIndexOf('\n', idx);
}
if (idx !== -1) {
// Cut off everything after the bottom frame since it'll be internals.
stack = stack.slice(0, idx);
}
const frames = stack.split('\n');
const parsedFrames: ReactStackTrace = [];
// We skip top frames here since they may or may not be parseable but we
// want to skip the same number of frames regardless. I.e. we can't do it
// in the caller.
for (let i = skipFrames; i < frames.length; i++) {
const parsed = chromeFrameRegExp.exec(frames[i]);
if (!parsed) {
continue;
}
let name = parsed[1] || '';
let isAsync = parsed[8] === 'async ';
if (name === '<anonymous>') {
name = '';
} else if (name.startsWith('async ')) {
name = name.slice(5);
isAsync = true;
}
let filename = parsed[2] || parsed[5] || '';
if (filename === '<anonymous>') {
filename = '';
}
const line = +(parsed[3] || parsed[6] || 0);
const col = +(parsed[4] || parsed[7] || 0);
parsedFrames.push([name, filename, line, col, 0, 0, isAsync]);
}
return parsedFrames;
}
Domain
Subdomains
Called By
Source
Frequently Asked Questions
What does parseStackTraceFromChromeStack() do?
parseStackTraceFromChromeStack() is a function in the react codebase, defined in packages/react-devtools-shared/src/backend/utils/parseStackTrace.js.
Where is parseStackTraceFromChromeStack() defined?
parseStackTraceFromChromeStack() is defined in packages/react-devtools-shared/src/backend/utils/parseStackTrace.js at line 13.
What calls parseStackTraceFromChromeStack()?
parseStackTraceFromChromeStack() is called by 1 function(s): parseStackTraceFromString.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free