From 7462cf719fc7fa8022bdba843e0b8e80061d8cb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hu=C3=A1ng=20J=C3=B9nli=C3=A0ng?= Date: Thu, 16 Jul 2020 17:13:24 -0400 Subject: [PATCH] fix: correctly set innerEndPos in CoverParenthesizedExpressionAndArrowParameterList --- .../babel-parser/src/parser/expression.js | 4 +- .../sequence-expression-end/input.js | 4 ++ .../sequence-expression-end/output.json | 47 +++++++++++++++++++ 3 files changed, 53 insertions(+), 2 deletions(-) create mode 100644 packages/babel-parser/test/fixtures/core/categorized/sequence-expression-end/input.js create mode 100644 packages/babel-parser/test/fixtures/core/categorized/sequence-expression-end/output.json diff --git a/packages/babel-parser/src/parser/expression.js b/packages/babel-parser/src/parser/expression.js index cec1bcd2a555..fc8446548d86 100644 --- a/packages/babel-parser/src/parser/expression.js +++ b/packages/babel-parser/src/parser/expression.js @@ -1371,8 +1371,8 @@ export default class ExpressionParser extends LValParser { } } - const innerEndPos = this.state.start; - const innerEndLoc = this.state.startLoc; + const innerEndPos = this.state.lastTokEnd; + const innerEndLoc = this.state.lastTokEndLoc; this.expect(tt.parenR); this.state.maybeInArrowParameters = oldMaybeInArrowParameters; diff --git a/packages/babel-parser/test/fixtures/core/categorized/sequence-expression-end/input.js b/packages/babel-parser/test/fixtures/core/categorized/sequence-expression-end/input.js new file mode 100644 index 000000000000..a5926ad42e9b --- /dev/null +++ b/packages/babel-parser/test/fixtures/core/categorized/sequence-expression-end/input.js @@ -0,0 +1,4 @@ +a = ( + b, + c +) diff --git a/packages/babel-parser/test/fixtures/core/categorized/sequence-expression-end/output.json b/packages/babel-parser/test/fixtures/core/categorized/sequence-expression-end/output.json new file mode 100644 index 000000000000..8db0508b75d9 --- /dev/null +++ b/packages/babel-parser/test/fixtures/core/categorized/sequence-expression-end/output.json @@ -0,0 +1,47 @@ +{ + "type": "File", + "start":0,"end":16,"loc":{"start":{"line":1,"column":0},"end":{"line":4,"column":1}}, + "program": { + "type": "Program", + "start":0,"end":16,"loc":{"start":{"line":1,"column":0},"end":{"line":4,"column":1}}, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "ExpressionStatement", + "start":0,"end":16,"loc":{"start":{"line":1,"column":0},"end":{"line":4,"column":1}}, + "expression": { + "type": "AssignmentExpression", + "start":0,"end":16,"loc":{"start":{"line":1,"column":0},"end":{"line":4,"column":1}}, + "operator": "=", + "left": { + "type": "Identifier", + "start":0,"end":1,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":1},"identifierName":"a"}, + "name": "a" + }, + "right": { + "type": "SequenceExpression", + "start":8,"end":14,"loc":{"start":{"line":2,"column":2},"end":{"line":3,"column":3}}, + "expressions": [ + { + "type": "Identifier", + "start":8,"end":9,"loc":{"start":{"line":2,"column":2},"end":{"line":2,"column":3},"identifierName":"b"}, + "name": "b" + }, + { + "type": "Identifier", + "start":13,"end":14,"loc":{"start":{"line":3,"column":2},"end":{"line":3,"column":3},"identifierName":"c"}, + "name": "c" + } + ], + "extra": { + "parenthesized": true, + "parenStart": 4 + } + } + } + } + ], + "directives": [] + } +}