From 1bd46a81b46f5d148a36f0202218e31051295ff9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Ribaudo?= Date: Mon, 13 Sep 2021 17:18:02 +0200 Subject: [PATCH 1/2] Update test --- .../class-private-property/basic/input.js | 4 ++ .../class-private-property/basic/output.json | 58 +++++++++++++++++-- 2 files changed, 58 insertions(+), 4 deletions(-) diff --git a/packages/babel-parser/test/fixtures/estree/class-private-property/basic/input.js b/packages/babel-parser/test/fixtures/estree/class-private-property/basic/input.js index 6124cfdbf4c5..8bfd0aed5727 100644 --- a/packages/babel-parser/test/fixtures/estree/class-private-property/basic/input.js +++ b/packages/babel-parser/test/fixtures/estree/class-private-property/basic/input.js @@ -1,4 +1,8 @@ class A { #foo = "bar"; static #bar = foo; + + method() { + this.#foo; + } } diff --git a/packages/babel-parser/test/fixtures/estree/class-private-property/basic/output.json b/packages/babel-parser/test/fixtures/estree/class-private-property/basic/output.json index 23c1a61c1202..c7f55f46216f 100644 --- a/packages/babel-parser/test/fixtures/estree/class-private-property/basic/output.json +++ b/packages/babel-parser/test/fixtures/estree/class-private-property/basic/output.json @@ -1,15 +1,15 @@ { "type": "File", - "start":0,"end":48,"loc":{"start":{"line":1,"column":0},"end":{"line":4,"column":1}}, + "start":0,"end":81,"loc":{"start":{"line":1,"column":0},"end":{"line":8,"column":1}}, "program": { "type": "Program", - "start":0,"end":48,"loc":{"start":{"line":1,"column":0},"end":{"line":4,"column":1}}, + "start":0,"end":81,"loc":{"start":{"line":1,"column":0},"end":{"line":8,"column":1}}, "sourceType": "script", "interpreter": null, "body": [ { "type": "ClassDeclaration", - "start":0,"end":48,"loc":{"start":{"line":1,"column":0},"end":{"line":4,"column":1}}, + "start":0,"end":81,"loc":{"start":{"line":1,"column":0},"end":{"line":8,"column":1}}, "id": { "type": "Identifier", "start":6,"end":7,"loc":{"start":{"line":1,"column":6},"end":{"line":1,"column":7},"identifierName":"A"}, @@ -18,7 +18,7 @@ "superClass": null, "body": { "type": "ClassBody", - "start":8,"end":48,"loc":{"start":{"line":1,"column":8},"end":{"line":4,"column":1}}, + "start":8,"end":81,"loc":{"start":{"line":1,"column":8},"end":{"line":8,"column":1}}, "body": [ { "type": "PropertyDefinition", @@ -52,6 +52,56 @@ "name": "foo" }, "computed": false + }, + { + "type": "MethodDefinition", + "start":50,"end":79,"loc":{"start":{"line":5,"column":2},"end":{"line":7,"column":3}}, + "static": false, + "key": { + "type": "Identifier", + "start":50,"end":56,"loc":{"start":{"line":5,"column":2},"end":{"line":5,"column":8},"identifierName":"method"}, + "name": "method" + }, + "computed": false, + "kind": "method", + "value": { + "type": "FunctionExpression", + "start":56,"end":79,"loc":{"start":{"line":5,"column":8},"end":{"line":7,"column":3}}, + "id": null, + "generator": false, + "async": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start":59,"end":79,"loc":{"start":{"line":5,"column":11},"end":{"line":7,"column":3}}, + "body": [ + { + "type": "ExpressionStatement", + "start":65,"end":75,"loc":{"start":{"line":6,"column":4},"end":{"line":6,"column":14}}, + "expression": { + "type": "MemberExpression", + "start":65,"end":74,"loc":{"start":{"line":6,"column":4},"end":{"line":6,"column":13}}, + "object": { + "type": "ThisExpression", + "start":65,"end":69,"loc":{"start":{"line":6,"column":4},"end":{"line":6,"column":8}} + }, + "computed": false, + "property": { + "type": "PrivateName", + "start":70,"end":74,"loc":{"start":{"line":6,"column":9},"end":{"line":6,"column":13}}, + "id": { + "type": "Identifier", + "start":71,"end":74,"loc":{"start":{"line":6,"column":10},"end":{"line":6,"column":13},"identifierName":"foo"}, + "name": "foo" + } + }, + "optional": false + } + } + ] + } + } } ] } From c6f350036d69c654bce286b4364079ad7bb0eeae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Ribaudo?= Date: Mon, 13 Sep 2021 17:19:18 +0200 Subject: [PATCH 2/2] [estree] Fix conversion of `PrivateName` in `MemberExpression` --- packages/babel-parser/src/plugins/estree.js | 13 +++++-------- .../estree/class-private-property/basic/output.json | 8 ++------ 2 files changed, 7 insertions(+), 14 deletions(-) diff --git a/packages/babel-parser/src/plugins/estree.js b/packages/babel-parser/src/plugins/estree.js index bbc0b789bb3b..1898b60e7f2d 100644 --- a/packages/babel-parser/src/plugins/estree.js +++ b/packages/babel-parser/src/plugins/estree.js @@ -181,15 +181,12 @@ export default (superClass: Class): Class => classBody.body.push(method); } - parseMaybePrivateName(...args: [boolean]): any { - const node = super.parseMaybePrivateName(...args); - if ( - node.type === "PrivateName" && - this.getPluginOption("estree", "classFeatures") - ) { - return this.convertPrivateNameToPrivateIdentifier(node); + parsePrivateName(): any { + const node = super.parsePrivateName(); + if (!this.getPluginOption("estree", "classFeatures")) { + return node; } - return node; + return this.convertPrivateNameToPrivateIdentifier(node); } convertPrivateNameToPrivateIdentifier( diff --git a/packages/babel-parser/test/fixtures/estree/class-private-property/basic/output.json b/packages/babel-parser/test/fixtures/estree/class-private-property/basic/output.json index c7f55f46216f..69562657d6d0 100644 --- a/packages/babel-parser/test/fixtures/estree/class-private-property/basic/output.json +++ b/packages/babel-parser/test/fixtures/estree/class-private-property/basic/output.json @@ -88,13 +88,9 @@ }, "computed": false, "property": { - "type": "PrivateName", + "type": "PrivateIdentifier", "start":70,"end":74,"loc":{"start":{"line":6,"column":9},"end":{"line":6,"column":13}}, - "id": { - "type": "Identifier", - "start":71,"end":74,"loc":{"start":{"line":6,"column":10},"end":{"line":6,"column":13},"identifierName":"foo"}, - "name": "foo" - } + "name": "foo" }, "optional": false }