From be9da7ef08f09c1ee63fb059ba6aefb9dfdf55f8 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Fri, 27 Feb 2015 23:23:15 +1100 Subject: [PATCH] output esprima compatible error messages - fixes babel/babel-eslint#3 --- eslint/babel-eslint-parser/index.js | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/eslint/babel-eslint-parser/index.js b/eslint/babel-eslint-parser/index.js index ee476e9bfe..41aa98b174 100644 --- a/eslint/babel-eslint-parser/index.js +++ b/eslint/babel-eslint-parser/index.js @@ -62,7 +62,20 @@ exports.parse = function (code) { var comments = opts.onComment = []; var tokens = opts.onToken = []; - var ast = acorn.parse(code, opts); + var ast; + try { + ast = acorn.parse(code, opts); + } catch (err) { + if (err instanceof SyntaxError) { + err.lineNumber = err.loc.line; + err.column = err.loc.column; + + // remove trailing "(LINE:COLUMN)" acorn message and add in esprima syntax error message start + err.message = "Line X: " + err.message.replace(/ \((\d+):(\d+)\)$/, ""); + } + + throw err; + } // convert tokens ast.tokens = tokens.map(acornToEsprima.toToken);