From 7234442fdec73e5713e9216979f341c99f892c7e Mon Sep 17 00:00:00 2001 From: Kai Cataldo Date: Sun, 4 Feb 2018 14:00:03 -0500 Subject: [PATCH] Add location information to parsing errors (#7314) --- packages/babel-core/src/transformation/normalize-file.js | 2 +- packages/babel-template/src/parse.js | 2 +- packages/babel-traverse/src/path/replacement.js | 5 +---- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/packages/babel-core/src/transformation/normalize-file.js b/packages/babel-core/src/transformation/normalize-file.js index 8124db2885..2ff27aadaf 100644 --- a/packages/babel-core/src/transformation/normalize-file.js +++ b/packages/babel-core/src/transformation/normalize-file.js @@ -91,7 +91,6 @@ function parser(pluginPasses, options, code) { } catch (err) { const { loc, missingPlugin } = err; if (loc) { - err.loc = null; const codeFrame = codeFrameColumns( code, { @@ -110,6 +109,7 @@ function parser(pluginPasses, options, code) { err.message = `${options.filename || "unknown"}: ${err.message}\n\n` + codeFrame; } + err.code = "BABEL_PARSE_ERROR"; } throw err; } diff --git a/packages/babel-template/src/parse.js b/packages/babel-template/src/parse.js index c1ec46bde2..0df147530d 100644 --- a/packages/babel-template/src/parse.js +++ b/packages/babel-template/src/parse.js @@ -148,8 +148,8 @@ function parseWithCodeFrame(code: string, parserOpts: {}): BabelNodeFile { } catch (err) { const loc = err.loc; if (loc) { - err.loc = null; err.message += "\n" + codeFrameColumns(code, { start: loc }); + err.code = "BABEL_TEMPLATE_PARSE_ERROR"; } throw err; } diff --git a/packages/babel-traverse/src/path/replacement.js b/packages/babel-traverse/src/path/replacement.js index 3ce5762877..51db96f1bb 100644 --- a/packages/babel-traverse/src/path/replacement.js +++ b/packages/babel-traverse/src/path/replacement.js @@ -77,10 +77,6 @@ export function replaceWithSourceString(replacement) { } catch (err) { const loc = err.loc; if (loc) { - // Set the location to null or else the re-thrown exception could - // incorrectly interpret the location as referencing the file being - // transformed. - err.loc = null; err.message += " - make sure this is an expression.\n" + codeFrameColumns(replacement, { @@ -89,6 +85,7 @@ export function replaceWithSourceString(replacement) { column: loc.column + 1, }, }); + err.code = "BABEL_REPLACE_SOURCE_ERROR"; } throw err; }