From a2170b8994eda89e525b3743b292b94443b72fbc Mon Sep 17 00:00:00 2001 From: Brian Ng Date: Fri, 21 Aug 2020 08:50:19 -0500 Subject: [PATCH] Set generator to true during error recovery of accessor --- 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 9df262f9cf13..beb13a0feeec 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 0049c946dc8c..09cc367ae97a 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": [ {