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": [] + } +}