From 35b722f5422441bd97552bb8a5bf63074b1be34a Mon Sep 17 00:00:00 2001 From: Alex Zherdev Date: Fri, 1 Mar 2019 20:13:19 -0800 Subject: [PATCH] Chore: improve crash reporting (fixes #11304) Add line number to the output in the event of a rule crash --- lib/linter.js | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/linter.js b/lib/linter.js index 88448d90f8aa..92a3debdb283 100644 --- a/lib/linter.js +++ b/lib/linter.js @@ -747,10 +747,15 @@ function runRules(sourceCode, configuredRules, ruleMapper, parserOptions, parser nodeQueue.forEach(traversalInfo => { currentNode = traversalInfo.node; - if (traversalInfo.isEntering) { - eventGenerator.enterNode(currentNode); - } else { - eventGenerator.leaveNode(currentNode); + try { + if (traversalInfo.isEntering) { + eventGenerator.enterNode(currentNode); + } else { + eventGenerator.leaveNode(currentNode); + } + } catch (err) { + err.currentNode = currentNode; + throw err; } }); @@ -903,6 +908,9 @@ module.exports = class Linter { } catch (err) { debug("An error occurred while traversing"); debug("Filename:", options.filename); + if (err.currentNode) { + debug("Line:", err.currentNode.loc.start.line); + } debug("Parser Options:", parserOptions); debug("Parser Path:", parserName); debug("Settings:", settings);