diff --git a/packages/react-devtools-shared/src/backend/utils/index.js b/packages/react-devtools-shared/src/backend/utils/index.js index 17250a1906..b7e4498691 100644 --- a/packages/react-devtools-shared/src/backend/utils/index.js +++ b/packages/react-devtools-shared/src/backend/utils/index.js @@ -381,7 +381,7 @@ function collectStackTrace( // $FlowFixMe[prop-missing] typeof callSite.getEnclosingColumnNumber === 'function' ? (callSite: any).getEnclosingColumnNumber() - : callSite.getLineNumber(); + : callSite.getColumnNumber(); if (!sourceURL || !line || !col) { // Skip eval etc. without source url. They don't have location. continue; @@ -412,12 +412,19 @@ export function parseSourceFromOwnerStack(error: Error): Source | null { let stack; try { stack = error.stack; + } catch (e) { + // $FlowFixMe[incompatible-type] It does accept undefined. + Error.prepareStackTrace = undefined; + stack = error.stack; } finally { Error.prepareStackTrace = previousPrepare; } if (collectedLocation !== null) { return collectedLocation; } + if (stack == null) { + return null; + } // Fallback to parsing the string form. const componentStack = formatOwnerStackString(stack); return parseSourceFromComponentStack(componentStack);