From f31099f383b52cf4fe1786188f6421529dea865b Mon Sep 17 00:00:00 2001 From: Henry Zhu Date: Wed, 6 Jan 2016 18:42:26 -0500 Subject: [PATCH] `babylon`: fix error location for class properties with a missing semicolon --- packages/babylon/src/parser/statement.js | 2 +- .../semicolons-required-with-value/options.json | 2 +- .../semicolons-required-without-value/options.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/babylon/src/parser/statement.js b/packages/babylon/src/parser/statement.js index ab7ae36f1c..c81550143f 100644 --- a/packages/babylon/src/parser/statement.js +++ b/packages/babylon/src/parser/statement.js @@ -748,7 +748,7 @@ pp.parseClassProperty = function (node) { node.value = null; } if (!this.eat(tt.semi)) { - this.raise(this.state.start, "A semicolon is required after a class property"); + this.raise(node.value && node.value.end || node.key.end, "A semicolon is required after a class property"); } return this.finishNode(node, "ClassProperty"); }; diff --git a/packages/babylon/test/fixtures/experimental/class-properties/semicolons-required-with-value/options.json b/packages/babylon/test/fixtures/experimental/class-properties/semicolons-required-with-value/options.json index 4bf955cfec..b8d8f0380c 100644 --- a/packages/babylon/test/fixtures/experimental/class-properties/semicolons-required-with-value/options.json +++ b/packages/babylon/test/fixtures/experimental/class-properties/semicolons-required-with-value/options.json @@ -1,4 +1,4 @@ { - "throws": "A semicolon is required after a class property (3:0)", + "throws": "A semicolon is required after a class property (2:10)", "plugins": ["classProperties"] } diff --git a/packages/babylon/test/fixtures/experimental/class-properties/semicolons-required-without-value/options.json b/packages/babylon/test/fixtures/experimental/class-properties/semicolons-required-without-value/options.json index 4bf955cfec..29c4aac831 100644 --- a/packages/babylon/test/fixtures/experimental/class-properties/semicolons-required-without-value/options.json +++ b/packages/babylon/test/fixtures/experimental/class-properties/semicolons-required-without-value/options.json @@ -1,4 +1,4 @@ { - "throws": "A semicolon is required after a class property (3:0)", + "throws": "A semicolon is required after a class property (2:6)", "plugins": ["classProperties"] }