From 941f6102751c0cea775117bf674c0fad9c3a9954 Mon Sep 17 00:00:00 2001 From: Brian Ng Date: Fri, 21 Aug 2020 14:37:52 -0500 Subject: [PATCH] Set generator to true during error recovery of accessor (#11987) --- packages/babel-parser/src/parser/expression.js | 5 ++++- .../es2015/object/invalid-accessor-generator/output.json | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/babel-parser/src/parser/expression.js b/packages/babel-parser/src/parser/expression.js index 9df262f9cf..beb13a0fee 100644 --- a/packages/babel-parser/src/parser/expression.js +++ b/packages/babel-parser/src/parser/expression.js @@ -1767,6 +1767,7 @@ export default class ExpressionParser extends LValParser { isAccessor = true; prop.kind = keyName; if (this.match(tt.star)) { + isGenerator = true; this.raise(this.state.pos, Errors.AccessorIsGenerator, keyName); this.next(); } @@ -1827,7 +1828,9 @@ export default class ExpressionParser extends LValParser { // isAccessor implies isAsync: false, isPattern: false, isGenerator: false this.parseMethod( prop, - /* isGenerator */ false, + // This _should_ be false, but with error recovery, we allow it to be + // set for informational purposes + isGenerator, /* isAsync */ false, /* isConstructor */ false, false, diff --git a/packages/babel-parser/test/fixtures/es2015/object/invalid-accessor-generator/output.json b/packages/babel-parser/test/fixtures/es2015/object/invalid-accessor-generator/output.json index 0049c946dc..09cc367ae9 100644 --- a/packages/babel-parser/test/fixtures/es2015/object/invalid-accessor-generator/output.json +++ b/packages/babel-parser/test/fixtures/es2015/object/invalid-accessor-generator/output.json @@ -30,7 +30,7 @@ "computed": false, "kind": "get", "id": null, - "generator": false, + "generator": true, "async": false, "params": [], "body": { @@ -52,7 +52,7 @@ "computed": false, "kind": "set", "id": null, - "generator": false, + "generator": true, "async": false, "params": [ {