From b25c13394f396860ba276970d34b901a9e8f643e Mon Sep 17 00:00:00 2001 From: Dan Abramov <dan.abramov@gmail.com> Date: Sun, 14 May 2017 12:14:22 +0100 Subject: [PATCH] Skip React frames that are too close (#2143) --- .../react-error-overlay/src/utils/warnings.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/packages/react-error-overlay/src/utils/warnings.js b/packages/react-error-overlay/src/utils/warnings.js index b2fc34bb4..d714eb4f8 100644 --- a/packages/react-error-overlay/src/utils/warnings.js +++ b/packages/react-error-overlay/src/utils/warnings.js @@ -13,11 +13,26 @@ function massage( // Reassemble the stack with full filenames provided by React let stack = ''; + let lastFilename; + let lastLineNumber; for (let index = 0; index < frames.length; ++index) { const { fileName, lineNumber } = frames[index]; if (fileName == null || lineNumber == null) { continue; } + + // TODO: instead, collapse them in the UI + if ( + fileName === lastFilename && + typeof lineNumber === 'number' && + typeof lastLineNumber === 'number' && + Math.abs(lineNumber - lastLineNumber) < 3 + ) { + continue; + } + lastFilename = fileName; + lastLineNumber = lineNumber; + let { functionName } = frames[index]; functionName = functionName || '(anonymous function)'; stack += `in ${functionName} (at ${fileName}:${lineNumber})\n`; -- GitLab