diff --git a/eslint/babel-eslint-parser/src/worker/ast-info.cjs b/eslint/babel-eslint-parser/src/worker/ast-info.cjs index a9ed882c21..5bd553854c 100644 --- a/eslint/babel-eslint-parser/src/worker/ast-info.cjs +++ b/eslint/babel-eslint-parser/src/worker/ast-info.cjs @@ -13,7 +13,7 @@ exports.getVisitorKeys = function getVisitorKeys() { ESLINT_VISITOR_KEYS.MethodDefinition, ), Property: ["decorators"].concat(ESLINT_VISITOR_KEYS.Property), - PropertyDefinition: ["decorators"].concat( + PropertyDefinition: ["decorators", "typeAnnotation"].concat( ESLINT_VISITOR_KEYS.PropertyDefinition, ), }; diff --git a/packages/babel-parser/src/plugins/estree.js b/packages/babel-parser/src/plugins/estree.js index 5c8788b6ff..9fd2ff3ede 100644 --- a/packages/babel-parser/src/plugins/estree.js +++ b/packages/babel-parser/src/plugins/estree.js @@ -183,8 +183,10 @@ export default (superClass: Class): Class => parsePrivateName(): any { const node = super.parsePrivateName(); - if (!this.getPluginOption("estree", "classFeatures")) { - return node; + if (!process.env.BABEL_8_BREAKING) { + if (!this.getPluginOption("estree", "classFeatures")) { + return node; + } } return this.convertPrivateNameToPrivateIdentifier(node); } @@ -201,15 +203,19 @@ export default (superClass: Class): Class => } isPrivateName(node: N.Node): boolean { - if (!this.getPluginOption("estree", "classFeatures")) { - return super.isPrivateName(node); + if (!process.env.BABEL_8_BREAKING) { + if (!this.getPluginOption("estree", "classFeatures")) { + return super.isPrivateName(node); + } } return node.type === "PrivateIdentifier"; } getPrivateNameSV(node: N.Node): string { - if (!this.getPluginOption("estree", "classFeatures")) { - return super.getPrivateNameSV(node); + if (!process.env.BABEL_8_BREAKING) { + if (!this.getPluginOption("estree", "classFeatures")) { + return super.getPrivateNameSV(node); + } } return node.name; } @@ -265,18 +271,24 @@ export default (superClass: Class): Class => parseClassProperty(...args: [N.ClassProperty]): any { const propertyNode = (super.parseClassProperty(...args): any); - if (this.getPluginOption("estree", "classFeatures")) { - propertyNode.type = "PropertyDefinition"; + if (!process.env.BABEL_8_BREAKING) { + if (!this.getPluginOption("estree", "classFeatures")) { + return (propertyNode: N.EstreePropertyDefinition); + } } + propertyNode.type = "PropertyDefinition"; return (propertyNode: N.EstreePropertyDefinition); } parseClassPrivateProperty(...args: [N.ClassPrivateProperty]): any { const propertyNode = (super.parseClassPrivateProperty(...args): any); - if (this.getPluginOption("estree", "classFeatures")) { - propertyNode.type = "PropertyDefinition"; - propertyNode.computed = false; + if (!process.env.BABEL_8_BREAKING) { + if (!this.getPluginOption("estree", "classFeatures")) { + return (propertyNode: N.EstreePropertyDefinition); + } } + propertyNode.type = "PropertyDefinition"; + propertyNode.computed = false; return (propertyNode: N.EstreePropertyDefinition); } diff --git a/packages/babel-parser/test/fixtures/estree/class-private-method/basic/input.js b/packages/babel-parser/test/fixtures/estree/class-private-method/basic-babel-7/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/estree/class-private-method/basic/input.js rename to packages/babel-parser/test/fixtures/estree/class-private-method/basic-babel-7/input.js diff --git a/packages/babel-parser/test/fixtures/estree/class-private-method/basic/options.json b/packages/babel-parser/test/fixtures/estree/class-private-method/basic-babel-7/options.json similarity index 71% rename from packages/babel-parser/test/fixtures/estree/class-private-method/basic/options.json rename to packages/babel-parser/test/fixtures/estree/class-private-method/basic-babel-7/options.json index 686413bc8c..71b0880df6 100644 --- a/packages/babel-parser/test/fixtures/estree/class-private-method/basic/options.json +++ b/packages/babel-parser/test/fixtures/estree/class-private-method/basic-babel-7/options.json @@ -1,3 +1,4 @@ { + "BABEL_8_BREAKING": false, "plugins": ["flow", "jsx", ["estree", { "classFeatures": true }]] } diff --git a/packages/babel-parser/test/fixtures/estree/class-private-method/basic/output.json b/packages/babel-parser/test/fixtures/estree/class-private-method/basic-babel-7/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/estree/class-private-method/basic/output.json rename to packages/babel-parser/test/fixtures/estree/class-private-method/basic-babel-7/output.json diff --git a/packages/babel-parser/test/fixtures/estree/class-private-method/not-enabled/input.js b/packages/babel-parser/test/fixtures/estree/class-private-method/basic-babel-8/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/estree/class-private-method/not-enabled/input.js rename to packages/babel-parser/test/fixtures/estree/class-private-method/basic-babel-8/input.js diff --git a/packages/babel-parser/test/fixtures/estree/class-private-method/not-enabled/options.json b/packages/babel-parser/test/fixtures/estree/class-private-method/basic-babel-8/options.json similarity index 60% rename from packages/babel-parser/test/fixtures/estree/class-private-method/not-enabled/options.json rename to packages/babel-parser/test/fixtures/estree/class-private-method/basic-babel-8/options.json index acae373c99..676349bf25 100644 --- a/packages/babel-parser/test/fixtures/estree/class-private-method/not-enabled/options.json +++ b/packages/babel-parser/test/fixtures/estree/class-private-method/basic-babel-8/options.json @@ -1,3 +1,4 @@ { + "BABEL_8_BREAKING": true, "plugins": ["flow", "jsx", "estree"] } diff --git a/packages/babel-parser/test/fixtures/estree/class-private-method/basic-babel-8/output.json b/packages/babel-parser/test/fixtures/estree/class-private-method/basic-babel-8/output.json new file mode 100644 index 0000000000..8cba57bd79 --- /dev/null +++ b/packages/babel-parser/test/fixtures/estree/class-private-method/basic-babel-8/output.json @@ -0,0 +1,110 @@ +{ + "type": "File", + "start":0,"end":70,"loc":{"start":{"line":1,"column":0},"end":{"line":4,"column":1}}, + "program": { + "type": "Program", + "start":0,"end":70,"loc":{"start":{"line":1,"column":0},"end":{"line":4,"column":1}}, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "ClassDeclaration", + "start":0,"end":70,"loc":{"start":{"line":1,"column":0},"end":{"line":4,"column":1}}, + "id": { + "type": "Identifier", + "start":6,"end":7,"loc":{"start":{"line":1,"column":6},"end":{"line":1,"column":7},"identifierName":"A"}, + "name": "A" + }, + "superClass": null, + "body": { + "type": "ClassBody", + "start":8,"end":70,"loc":{"start":{"line":1,"column":8},"end":{"line":4,"column":1}}, + "body": [ + { + "type": "MethodDefinition", + "start":12,"end":35,"loc":{"start":{"line":2,"column":2},"end":{"line":2,"column":25}}, + "static": false, + "key": { + "type": "PrivateIdentifier", + "start":12,"end":16,"loc":{"start":{"line":2,"column":2},"end":{"line":2,"column":6}}, + "name": "foo" + }, + "kind": "method", + "value": { + "type": "FunctionExpression", + "start":16,"end":35,"loc":{"start":{"line":2,"column":6},"end":{"line":2,"column":25}}, + "id": null, + "generator": false, + "async": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start":17,"end":20,"loc":{"start":{"line":2,"column":7},"end":{"line":2,"column":10},"identifierName":"arg"}, + "name": "arg" + }, + { + "type": "RestElement", + "start":22,"end":31,"loc":{"start":{"line":2,"column":12},"end":{"line":2,"column":21}}, + "argument": { + "type": "Identifier", + "start":25,"end":31,"loc":{"start":{"line":2,"column":15},"end":{"line":2,"column":21},"identifierName":"others"}, + "name": "others" + } + } + ], + "body": { + "type": "BlockStatement", + "start":33,"end":35,"loc":{"start":{"line":2,"column":23},"end":{"line":2,"column":25}}, + "body": [] + } + }, + "computed": false + }, + { + "type": "MethodDefinition", + "start":38,"end":68,"loc":{"start":{"line":3,"column":2},"end":{"line":3,"column":32}}, + "static": true, + "key": { + "type": "PrivateIdentifier", + "start":45,"end":49,"loc":{"start":{"line":3,"column":9},"end":{"line":3,"column":13}}, + "name": "bar" + }, + "kind": "method", + "value": { + "type": "FunctionExpression", + "start":49,"end":68,"loc":{"start":{"line":3,"column":13},"end":{"line":3,"column":32}}, + "id": null, + "generator": false, + "async": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start":50,"end":53,"loc":{"start":{"line":3,"column":14},"end":{"line":3,"column":17},"identifierName":"arg"}, + "name": "arg" + }, + { + "type": "RestElement", + "start":55,"end":64,"loc":{"start":{"line":3,"column":19},"end":{"line":3,"column":28}}, + "argument": { + "type": "Identifier", + "start":58,"end":64,"loc":{"start":{"line":3,"column":22},"end":{"line":3,"column":28},"identifierName":"others"}, + "name": "others" + } + } + ], + "body": { + "type": "BlockStatement", + "start":66,"end":68,"loc":{"start":{"line":3,"column":30},"end":{"line":3,"column":32}}, + "body": [] + } + }, + "computed": false + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/estree/class-private-method/not-enabled-babel-7/input.js b/packages/babel-parser/test/fixtures/estree/class-private-method/not-enabled-babel-7/input.js new file mode 100644 index 0000000000..95a442a265 --- /dev/null +++ b/packages/babel-parser/test/fixtures/estree/class-private-method/not-enabled-babel-7/input.js @@ -0,0 +1,4 @@ +class A { + #foo(arg, ...others) {} + static #bar(arg, ...others) {} +} diff --git a/packages/babel-parser/test/fixtures/estree/class-private-method/not-enabled-babel-7/options.json b/packages/babel-parser/test/fixtures/estree/class-private-method/not-enabled-babel-7/options.json new file mode 100644 index 0000000000..7963416099 --- /dev/null +++ b/packages/babel-parser/test/fixtures/estree/class-private-method/not-enabled-babel-7/options.json @@ -0,0 +1,4 @@ +{ + "BABEL_8_BREAKING": false, + "plugins": ["flow", "jsx", "estree"] +} diff --git a/packages/babel-parser/test/fixtures/estree/class-private-method/not-enabled/output.json b/packages/babel-parser/test/fixtures/estree/class-private-method/not-enabled-babel-7/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/estree/class-private-method/not-enabled/output.json rename to packages/babel-parser/test/fixtures/estree/class-private-method/not-enabled-babel-7/output.json 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-babel-7/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/estree/class-private-property/basic/input.js rename to packages/babel-parser/test/fixtures/estree/class-private-property/basic-babel-7/input.js diff --git a/packages/babel-parser/test/fixtures/estree/class-property/basic/options.json b/packages/babel-parser/test/fixtures/estree/class-private-property/basic-babel-7/options.json similarity index 66% rename from packages/babel-parser/test/fixtures/estree/class-property/basic/options.json rename to packages/babel-parser/test/fixtures/estree/class-private-property/basic-babel-7/options.json index e801f17f1e..1a07d051c6 100644 --- a/packages/babel-parser/test/fixtures/estree/class-property/basic/options.json +++ b/packages/babel-parser/test/fixtures/estree/class-private-property/basic-babel-7/options.json @@ -1,3 +1,4 @@ { + "BABEL_8_BREAKING": false, "plugins": [["estree", { "classFeatures": true }]] } 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-babel-7/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/estree/class-private-property/basic/output.json rename to packages/babel-parser/test/fixtures/estree/class-private-property/basic-babel-7/output.json diff --git a/packages/babel-parser/test/fixtures/estree/class-private-property/not-enabled/input.js b/packages/babel-parser/test/fixtures/estree/class-private-property/basic-babel-8/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/estree/class-private-property/not-enabled/input.js rename to packages/babel-parser/test/fixtures/estree/class-private-property/basic-babel-8/input.js diff --git a/packages/babel-parser/test/fixtures/estree/class-property/not-enabled/options.json b/packages/babel-parser/test/fixtures/estree/class-private-property/basic-babel-8/options.json similarity index 50% rename from packages/babel-parser/test/fixtures/estree/class-property/not-enabled/options.json rename to packages/babel-parser/test/fixtures/estree/class-private-property/basic-babel-8/options.json index 070d941a75..1b63b723b6 100644 --- a/packages/babel-parser/test/fixtures/estree/class-property/not-enabled/options.json +++ b/packages/babel-parser/test/fixtures/estree/class-private-property/basic-babel-8/options.json @@ -1,3 +1,4 @@ { + "BABEL_8_BREAKING": true, "plugins": ["estree"] } diff --git a/packages/babel-parser/test/fixtures/estree/class-private-property/not-enabled/output.json b/packages/babel-parser/test/fixtures/estree/class-private-property/basic-babel-8/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/estree/class-private-property/not-enabled/output.json rename to packages/babel-parser/test/fixtures/estree/class-private-property/basic-babel-8/output.json diff --git a/packages/babel-parser/test/fixtures/estree/class-private-property/not-enabled-babel-7/input.js b/packages/babel-parser/test/fixtures/estree/class-private-property/not-enabled-babel-7/input.js new file mode 100644 index 0000000000..6124cfdbf4 --- /dev/null +++ b/packages/babel-parser/test/fixtures/estree/class-private-property/not-enabled-babel-7/input.js @@ -0,0 +1,4 @@ +class A { + #foo = "bar"; + static #bar = foo; +} diff --git a/packages/babel-parser/test/fixtures/estree/class-private-property/not-enabled-babel-7/options.json b/packages/babel-parser/test/fixtures/estree/class-private-property/not-enabled-babel-7/options.json new file mode 100644 index 0000000000..13f6e641c0 --- /dev/null +++ b/packages/babel-parser/test/fixtures/estree/class-private-property/not-enabled-babel-7/options.json @@ -0,0 +1,4 @@ +{ + "BABEL_8_BREAKING": false, + "plugins": ["estree"] +} diff --git a/packages/babel-parser/test/fixtures/estree/class-private-property/not-enabled-babel-7/output.json b/packages/babel-parser/test/fixtures/estree/class-private-property/not-enabled-babel-7/output.json new file mode 100644 index 0000000000..35a0ef6f65 --- /dev/null +++ b/packages/babel-parser/test/fixtures/estree/class-private-property/not-enabled-babel-7/output.json @@ -0,0 +1,67 @@ +{ + "type": "File", + "start":0,"end":48,"loc":{"start":{"line":1,"column":0},"end":{"line":4,"column":1}}, + "program": { + "type": "Program", + "start":0,"end":48,"loc":{"start":{"line":1,"column":0},"end":{"line":4,"column":1}}, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "ClassDeclaration", + "start":0,"end":48,"loc":{"start":{"line":1,"column":0},"end":{"line":4,"column":1}}, + "id": { + "type": "Identifier", + "start":6,"end":7,"loc":{"start":{"line":1,"column":6},"end":{"line":1,"column":7},"identifierName":"A"}, + "name": "A" + }, + "superClass": null, + "body": { + "type": "ClassBody", + "start":8,"end":48,"loc":{"start":{"line":1,"column":8},"end":{"line":4,"column":1}}, + "body": [ + { + "type": "ClassPrivateProperty", + "start":12,"end":25,"loc":{"start":{"line":2,"column":2},"end":{"line":2,"column":15}}, + "static": false, + "key": { + "type": "PrivateName", + "start":12,"end":16,"loc":{"start":{"line":2,"column":2},"end":{"line":2,"column":6}}, + "id": { + "type": "Identifier", + "start":13,"end":16,"loc":{"start":{"line":2,"column":3},"end":{"line":2,"column":6},"identifierName":"foo"}, + "name": "foo" + } + }, + "value": { + "type": "Literal", + "start":19,"end":24,"loc":{"start":{"line":2,"column":9},"end":{"line":2,"column":14}}, + "value": "bar", + "raw": "\"bar\"" + } + }, + { + "type": "ClassPrivateProperty", + "start":28,"end":46,"loc":{"start":{"line":3,"column":2},"end":{"line":3,"column":20}}, + "static": true, + "key": { + "type": "PrivateName", + "start":35,"end":39,"loc":{"start":{"line":3,"column":9},"end":{"line":3,"column":13}}, + "id": { + "type": "Identifier", + "start":36,"end":39,"loc":{"start":{"line":3,"column":10},"end":{"line":3,"column":13},"identifierName":"bar"}, + "name": "bar" + } + }, + "value": { + "type": "Identifier", + "start":42,"end":45,"loc":{"start":{"line":3,"column":16},"end":{"line":3,"column":19},"identifierName":"foo"}, + "name": "foo" + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/estree/class-private-property/not-enabled/options.json b/packages/babel-parser/test/fixtures/estree/class-private-property/not-enabled/options.json deleted file mode 100644 index e801f17f1e..0000000000 --- a/packages/babel-parser/test/fixtures/estree/class-private-property/not-enabled/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "plugins": [["estree", { "classFeatures": true }]] -} diff --git a/packages/babel-parser/test/fixtures/estree/class-property/basic/input.js b/packages/babel-parser/test/fixtures/estree/class-property/basic-babel-7/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/estree/class-property/basic/input.js rename to packages/babel-parser/test/fixtures/estree/class-property/basic-babel-7/input.js diff --git a/packages/babel-parser/test/fixtures/estree/class-private-property/basic/options.json b/packages/babel-parser/test/fixtures/estree/class-property/basic-babel-7/options.json similarity index 66% rename from packages/babel-parser/test/fixtures/estree/class-private-property/basic/options.json rename to packages/babel-parser/test/fixtures/estree/class-property/basic-babel-7/options.json index e801f17f1e..1a07d051c6 100644 --- a/packages/babel-parser/test/fixtures/estree/class-private-property/basic/options.json +++ b/packages/babel-parser/test/fixtures/estree/class-property/basic-babel-7/options.json @@ -1,3 +1,4 @@ { + "BABEL_8_BREAKING": false, "plugins": [["estree", { "classFeatures": true }]] } diff --git a/packages/babel-parser/test/fixtures/estree/class-property/basic/output.json b/packages/babel-parser/test/fixtures/estree/class-property/basic-babel-7/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/estree/class-property/basic/output.json rename to packages/babel-parser/test/fixtures/estree/class-property/basic-babel-7/output.json diff --git a/packages/babel-parser/test/fixtures/estree/class-property/not-enabled/input.js b/packages/babel-parser/test/fixtures/estree/class-property/basic-babel-8/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/estree/class-property/not-enabled/input.js rename to packages/babel-parser/test/fixtures/estree/class-property/basic-babel-8/input.js diff --git a/packages/babel-parser/test/fixtures/estree/private-in/basic/options.json b/packages/babel-parser/test/fixtures/estree/class-property/basic-babel-8/options.json similarity index 50% rename from packages/babel-parser/test/fixtures/estree/private-in/basic/options.json rename to packages/babel-parser/test/fixtures/estree/class-property/basic-babel-8/options.json index 070d941a75..1b63b723b6 100644 --- a/packages/babel-parser/test/fixtures/estree/private-in/basic/options.json +++ b/packages/babel-parser/test/fixtures/estree/class-property/basic-babel-8/options.json @@ -1,3 +1,4 @@ { + "BABEL_8_BREAKING": true, "plugins": ["estree"] } diff --git a/packages/babel-parser/test/fixtures/estree/class-property/basic-babel-8/output.json b/packages/babel-parser/test/fixtures/estree/class-property/basic-babel-8/output.json new file mode 100644 index 0000000000..2147f4df6d --- /dev/null +++ b/packages/babel-parser/test/fixtures/estree/class-property/basic-babel-8/output.json @@ -0,0 +1,96 @@ +{ + "type": "File", + "start":0,"end":91,"loc":{"start":{"line":1,"column":0},"end":{"line":6,"column":1}}, + "program": { + "type": "Program", + "start":0,"end":91,"loc":{"start":{"line":1,"column":0},"end":{"line":6,"column":1}}, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "ClassDeclaration", + "start":0,"end":91,"loc":{"start":{"line":1,"column":0},"end":{"line":6,"column":1}}, + "id": { + "type": "Identifier", + "start":6,"end":7,"loc":{"start":{"line":1,"column":6},"end":{"line":1,"column":7},"identifierName":"A"}, + "name": "A" + }, + "superClass": null, + "body": { + "type": "ClassBody", + "start":8,"end":91,"loc":{"start":{"line":1,"column":8},"end":{"line":6,"column":1}}, + "body": [ + { + "type": "PropertyDefinition", + "start":12,"end":24,"loc":{"start":{"line":2,"column":2},"end":{"line":2,"column":14}}, + "static": false, + "key": { + "type": "Identifier", + "start":12,"end":15,"loc":{"start":{"line":2,"column":2},"end":{"line":2,"column":5},"identifierName":"foo"}, + "name": "foo" + }, + "computed": false, + "value": { + "type": "Literal", + "start":18,"end":23,"loc":{"start":{"line":2,"column":8},"end":{"line":2,"column":13}}, + "value": "bar", + "raw": "\"bar\"" + } + }, + { + "type": "PropertyDefinition", + "start":27,"end":39,"loc":{"start":{"line":3,"column":2},"end":{"line":3,"column":14}}, + "static": false, + "computed": true, + "key": { + "type": "Identifier", + "start":28,"end":31,"loc":{"start":{"line":3,"column":3},"end":{"line":3,"column":6},"identifierName":"bar"}, + "name": "bar" + }, + "value": { + "type": "Identifier", + "start":35,"end":38,"loc":{"start":{"line":3,"column":10},"end":{"line":3,"column":13},"identifierName":"foo"}, + "name": "foo" + } + }, + { + "type": "PropertyDefinition", + "start":42,"end":64,"loc":{"start":{"line":4,"column":2},"end":{"line":4,"column":24}}, + "static": true, + "key": { + "type": "Literal", + "start":49,"end":54,"loc":{"start":{"line":4,"column":9},"end":{"line":4,"column":14}}, + "value": "qux", + "raw": "\"qux\"" + }, + "computed": false, + "value": { + "type": "Literal", + "start":57,"end":63,"loc":{"start":{"line":4,"column":17},"end":{"line":4,"column":23}}, + "value": "quux", + "raw": "\"quux\"" + } + }, + { + "type": "PropertyDefinition", + "start":67,"end":89,"loc":{"start":{"line":5,"column":2},"end":{"line":5,"column":24}}, + "static": true, + "computed": true, + "key": { + "type": "Identifier", + "start":75,"end":79,"loc":{"start":{"line":5,"column":10},"end":{"line":5,"column":14},"identifierName":"quux"}, + "name": "quux" + }, + "value": { + "type": "Literal", + "start":83,"end":88,"loc":{"start":{"line":5,"column":18},"end":{"line":5,"column":23}}, + "value": "qux", + "raw": "\"qux\"" + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babel-parser/test/fixtures/estree/class-property/not-enabled-babel-7/input.js b/packages/babel-parser/test/fixtures/estree/class-property/not-enabled-babel-7/input.js new file mode 100644 index 0000000000..48edb1bb1b --- /dev/null +++ b/packages/babel-parser/test/fixtures/estree/class-property/not-enabled-babel-7/input.js @@ -0,0 +1,6 @@ +class A { + foo = "bar"; + [bar] = foo; + static "qux" = "quux"; + static [quux] = "qux"; +} diff --git a/packages/babel-parser/test/fixtures/estree/class-property/not-enabled-babel-7/options.json b/packages/babel-parser/test/fixtures/estree/class-property/not-enabled-babel-7/options.json new file mode 100644 index 0000000000..13f6e641c0 --- /dev/null +++ b/packages/babel-parser/test/fixtures/estree/class-property/not-enabled-babel-7/options.json @@ -0,0 +1,4 @@ +{ + "BABEL_8_BREAKING": false, + "plugins": ["estree"] +} diff --git a/packages/babel-parser/test/fixtures/estree/class-property/not-enabled/output.json b/packages/babel-parser/test/fixtures/estree/class-property/not-enabled-babel-7/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/estree/class-property/not-enabled/output.json rename to packages/babel-parser/test/fixtures/estree/class-property/not-enabled-babel-7/output.json diff --git a/packages/babel-parser/test/fixtures/estree/private-in/basic/input.js b/packages/babel-parser/test/fixtures/estree/private-in/basic-babel-7/input.js similarity index 100% rename from packages/babel-parser/test/fixtures/estree/private-in/basic/input.js rename to packages/babel-parser/test/fixtures/estree/private-in/basic-babel-7/input.js diff --git a/packages/babel-parser/test/fixtures/estree/private-in/basic-babel-7/options.json b/packages/babel-parser/test/fixtures/estree/private-in/basic-babel-7/options.json new file mode 100644 index 0000000000..13f6e641c0 --- /dev/null +++ b/packages/babel-parser/test/fixtures/estree/private-in/basic-babel-7/options.json @@ -0,0 +1,4 @@ +{ + "BABEL_8_BREAKING": false, + "plugins": ["estree"] +} diff --git a/packages/babel-parser/test/fixtures/estree/private-in/basic/output.json b/packages/babel-parser/test/fixtures/estree/private-in/basic-babel-7/output.json similarity index 100% rename from packages/babel-parser/test/fixtures/estree/private-in/basic/output.json rename to packages/babel-parser/test/fixtures/estree/private-in/basic-babel-7/output.json diff --git a/packages/babel-parser/test/fixtures/estree/private-in/basic-babel-8/input.js b/packages/babel-parser/test/fixtures/estree/private-in/basic-babel-8/input.js new file mode 100644 index 0000000000..ced1c624f0 --- /dev/null +++ b/packages/babel-parser/test/fixtures/estree/private-in/basic-babel-8/input.js @@ -0,0 +1,6 @@ +class A { + #foo = "bar"; + static isA(obj) { + return #foo in obj; + } +} diff --git a/packages/babel-parser/test/fixtures/estree/private-in/basic-babel-8/options.json b/packages/babel-parser/test/fixtures/estree/private-in/basic-babel-8/options.json new file mode 100644 index 0000000000..13f6e641c0 --- /dev/null +++ b/packages/babel-parser/test/fixtures/estree/private-in/basic-babel-8/options.json @@ -0,0 +1,4 @@ +{ + "BABEL_8_BREAKING": false, + "plugins": ["estree"] +} diff --git a/packages/babel-parser/test/fixtures/estree/private-in/basic-babel-8/output.json b/packages/babel-parser/test/fixtures/estree/private-in/basic-babel-8/output.json new file mode 100644 index 0000000000..666b0fc1e8 --- /dev/null +++ b/packages/babel-parser/test/fixtures/estree/private-in/basic-babel-8/output.json @@ -0,0 +1,104 @@ +{ + "type": "File", + "start":0,"end":75,"loc":{"start":{"line":1,"column":0},"end":{"line":6,"column":1}}, + "program": { + "type": "Program", + "start":0,"end":75,"loc":{"start":{"line":1,"column":0},"end":{"line":6,"column":1}}, + "sourceType": "script", + "interpreter": null, + "body": [ + { + "type": "ClassDeclaration", + "start":0,"end":75,"loc":{"start":{"line":1,"column":0},"end":{"line":6,"column":1}}, + "id": { + "type": "Identifier", + "start":6,"end":7,"loc":{"start":{"line":1,"column":6},"end":{"line":1,"column":7},"identifierName":"A"}, + "name": "A" + }, + "superClass": null, + "body": { + "type": "ClassBody", + "start":8,"end":75,"loc":{"start":{"line":1,"column":8},"end":{"line":6,"column":1}}, + "body": [ + { + "type": "ClassPrivateProperty", + "start":12,"end":25,"loc":{"start":{"line":2,"column":2},"end":{"line":2,"column":15}}, + "static": false, + "key": { + "type": "PrivateName", + "start":12,"end":16,"loc":{"start":{"line":2,"column":2},"end":{"line":2,"column":6}}, + "id": { + "type": "Identifier", + "start":13,"end":16,"loc":{"start":{"line":2,"column":3},"end":{"line":2,"column":6},"identifierName":"foo"}, + "name": "foo" + } + }, + "value": { + "type": "Literal", + "start":19,"end":24,"loc":{"start":{"line":2,"column":9},"end":{"line":2,"column":14}}, + "value": "bar", + "raw": "\"bar\"" + } + }, + { + "type": "MethodDefinition", + "start":28,"end":73,"loc":{"start":{"line":3,"column":2},"end":{"line":5,"column":3}}, + "static": true, + "key": { + "type": "Identifier", + "start":35,"end":38,"loc":{"start":{"line":3,"column":9},"end":{"line":3,"column":12},"identifierName":"isA"}, + "name": "isA" + }, + "computed": false, + "kind": "method", + "value": { + "type": "FunctionExpression", + "start":38,"end":73,"loc":{"start":{"line":3,"column":12},"end":{"line":5,"column":3}}, + "id": null, + "generator": false, + "async": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start":39,"end":42,"loc":{"start":{"line":3,"column":13},"end":{"line":3,"column":16},"identifierName":"obj"}, + "name": "obj" + } + ], + "body": { + "type": "BlockStatement", + "start":44,"end":73,"loc":{"start":{"line":3,"column":18},"end":{"line":5,"column":3}}, + "body": [ + { + "type": "ReturnStatement", + "start":50,"end":69,"loc":{"start":{"line":4,"column":4},"end":{"line":4,"column":23}}, + "argument": { + "type": "BinaryExpression", + "start":57,"end":68,"loc":{"start":{"line":4,"column":11},"end":{"line":4,"column":22}}, + "left": { + "type": "PrivateName", + "start":57,"end":61,"loc":{"start":{"line":4,"column":11},"end":{"line":4,"column":15}}, + "id": { + "type": "Identifier", + "start":58,"end":61,"loc":{"start":{"line":4,"column":12},"end":{"line":4,"column":15},"identifierName":"foo"}, + "name": "foo" + } + }, + "operator": "in", + "right": { + "type": "Identifier", + "start":65,"end":68,"loc":{"start":{"line":4,"column":19},"end":{"line":4,"column":22},"identifierName":"obj"}, + "name": "obj" + } + } + } + ] + } + } + } + ] + } + } + ] + } +} \ No newline at end of file