Don't enable class features by default in estree (#12867)
* Don't enable class features by default in `estree` * Flow * Reduce breakage
This commit is contained in:
parent
a2114d452c
commit
c30039029a
@ -31,7 +31,10 @@ export function normalizeBabelParseConfig(options) {
|
|||||||
allowReturnOutsideFunction: true,
|
allowReturnOutsideFunction: true,
|
||||||
allowSuperOutsideMethod: true,
|
allowSuperOutsideMethod: true,
|
||||||
...options.babelOptions.parserOpts,
|
...options.babelOptions.parserOpts,
|
||||||
plugins: ["estree", ...(options.babelOptions.parserOpts?.plugins ?? [])],
|
plugins: [
|
||||||
|
["estree", { classFeatures: false }],
|
||||||
|
...(options.babelOptions.parserOpts?.plugins ?? []),
|
||||||
|
],
|
||||||
ranges: true,
|
ranges: true,
|
||||||
tokens: true,
|
tokens: true,
|
||||||
},
|
},
|
||||||
|
|||||||
@ -196,7 +196,10 @@ export default (superClass: Class<Parser>): Class<Parser> =>
|
|||||||
|
|
||||||
parseMaybePrivateName(...args: [boolean]): any {
|
parseMaybePrivateName(...args: [boolean]): any {
|
||||||
const node = super.parseMaybePrivateName(...args);
|
const node = super.parseMaybePrivateName(...args);
|
||||||
if (node.type === "PrivateName") {
|
if (
|
||||||
|
node.type === "PrivateName" &&
|
||||||
|
this.getPluginOption("estree", "classFeatures")
|
||||||
|
) {
|
||||||
return this.convertPrivateNameToPrivateIdentifier(node);
|
return this.convertPrivateNameToPrivateIdentifier(node);
|
||||||
}
|
}
|
||||||
return node;
|
return node;
|
||||||
@ -214,10 +217,16 @@ export default (superClass: Class<Parser>): Class<Parser> =>
|
|||||||
}
|
}
|
||||||
|
|
||||||
isPrivateName(node: N.Node): boolean {
|
isPrivateName(node: N.Node): boolean {
|
||||||
|
if (!this.getPluginOption("estree", "classFeatures")) {
|
||||||
|
return super.isPrivateName(node);
|
||||||
|
}
|
||||||
return node.type === "PrivateIdentifier";
|
return node.type === "PrivateIdentifier";
|
||||||
}
|
}
|
||||||
|
|
||||||
getPrivateNameSV(node: N.Node): string {
|
getPrivateNameSV(node: N.Node): string {
|
||||||
|
if (!this.getPluginOption("estree", "classFeatures")) {
|
||||||
|
return super.getPrivateNameSV(node);
|
||||||
|
}
|
||||||
return node.name;
|
return node.name;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -277,14 +286,18 @@ export default (superClass: Class<Parser>): Class<Parser> =>
|
|||||||
|
|
||||||
parseClassProperty(...args: [N.ClassProperty]): any {
|
parseClassProperty(...args: [N.ClassProperty]): any {
|
||||||
const propertyNode = (super.parseClassProperty(...args): any);
|
const propertyNode = (super.parseClassProperty(...args): any);
|
||||||
propertyNode.type = "PropertyDefinition";
|
if (this.getPluginOption("estree", "classFeatures")) {
|
||||||
|
propertyNode.type = "PropertyDefinition";
|
||||||
|
}
|
||||||
return (propertyNode: N.EstreePropertyDefinition);
|
return (propertyNode: N.EstreePropertyDefinition);
|
||||||
}
|
}
|
||||||
|
|
||||||
parseClassPrivateProperty(...args: [N.ClassPrivateProperty]): any {
|
parseClassPrivateProperty(...args: [N.ClassPrivateProperty]): any {
|
||||||
const propertyNode = (super.parseClassPrivateProperty(...args): any);
|
const propertyNode = (super.parseClassPrivateProperty(...args): any);
|
||||||
propertyNode.type = "PropertyDefinition";
|
if (this.getPluginOption("estree", "classFeatures")) {
|
||||||
propertyNode.computed = false;
|
propertyNode.type = "PropertyDefinition";
|
||||||
|
propertyNode.computed = false;
|
||||||
|
}
|
||||||
return (propertyNode: N.EstreePropertyDefinition);
|
return (propertyNode: N.EstreePropertyDefinition);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,3 +1,8 @@
|
|||||||
{
|
{
|
||||||
"plugins": ["flow", "jsx", "estree", "classPrivateMethods"]
|
"plugins": [
|
||||||
|
"flow",
|
||||||
|
"jsx",
|
||||||
|
["estree", { "classFeatures": true }],
|
||||||
|
"classPrivateMethods"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
4
packages/babel-parser/test/fixtures/estree/class-private-method/not-enabled/input.js
vendored
Normal file
4
packages/babel-parser/test/fixtures/estree/class-private-method/not-enabled/input.js
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
class A {
|
||||||
|
#foo(arg, ...others) {}
|
||||||
|
static #bar(arg, ...others) {}
|
||||||
|
}
|
||||||
3
packages/babel-parser/test/fixtures/estree/class-private-method/not-enabled/options.json
vendored
Normal file
3
packages/babel-parser/test/fixtures/estree/class-private-method/not-enabled/options.json
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"plugins": ["flow", "jsx", "estree", "classPrivateMethods"]
|
||||||
|
}
|
||||||
118
packages/babel-parser/test/fixtures/estree/class-private-method/not-enabled/output.json
vendored
Normal file
118
packages/babel-parser/test/fixtures/estree/class-private-method/not-enabled/output.json
vendored
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
{
|
||||||
|
"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": "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"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"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": "PrivateName",
|
||||||
|
"start":45,"end":49,"loc":{"start":{"line":3,"column":9},"end":{"line":3,"column":13}},
|
||||||
|
"id": {
|
||||||
|
"type": "Identifier",
|
||||||
|
"start":46,"end":49,"loc":{"start":{"line":3,"column":10},"end":{"line":3,"column":13},"identifierName":"bar"},
|
||||||
|
"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
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,3 +1,3 @@
|
|||||||
{
|
{
|
||||||
"plugins": ["estree", "classPrivateProperties"]
|
"plugins": [["estree", { "classFeatures": true }], "classPrivateProperties"]
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,3 +1,7 @@
|
|||||||
{
|
{
|
||||||
"plugins": ["flow", "estree", "classPrivateProperties"]
|
"plugins": [
|
||||||
|
"flow",
|
||||||
|
["estree", { "classFeatures": true }],
|
||||||
|
"classPrivateProperties"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
4
packages/babel-parser/test/fixtures/estree/class-private-property/not-enabled/input.js
vendored
Normal file
4
packages/babel-parser/test/fixtures/estree/class-private-property/not-enabled/input.js
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
class A {
|
||||||
|
#foo = "bar";
|
||||||
|
static #bar = foo;
|
||||||
|
}
|
||||||
3
packages/babel-parser/test/fixtures/estree/class-private-property/not-enabled/options.json
vendored
Normal file
3
packages/babel-parser/test/fixtures/estree/class-private-property/not-enabled/options.json
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"plugins": [["estree", { "classFeatures": true }], "classPrivateProperties"]
|
||||||
|
}
|
||||||
61
packages/babel-parser/test/fixtures/estree/class-private-property/not-enabled/output.json
vendored
Normal file
61
packages/babel-parser/test/fixtures/estree/class-private-property/not-enabled/output.json
vendored
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
{
|
||||||
|
"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": "PropertyDefinition",
|
||||||
|
"start":12,"end":25,"loc":{"start":{"line":2,"column":2},"end":{"line":2,"column":15}},
|
||||||
|
"static": false,
|
||||||
|
"key": {
|
||||||
|
"type": "PrivateIdentifier",
|
||||||
|
"start":12,"end":16,"loc":{"start":{"line":2,"column":2},"end":{"line":2,"column":6}},
|
||||||
|
"name": "foo"
|
||||||
|
},
|
||||||
|
"value": {
|
||||||
|
"type": "Literal",
|
||||||
|
"start":19,"end":24,"loc":{"start":{"line":2,"column":9},"end":{"line":2,"column":14}},
|
||||||
|
"value": "bar",
|
||||||
|
"raw": "\"bar\""
|
||||||
|
},
|
||||||
|
"computed": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "PropertyDefinition",
|
||||||
|
"start":28,"end":46,"loc":{"start":{"line":3,"column":2},"end":{"line":3,"column":20}},
|
||||||
|
"static": true,
|
||||||
|
"key": {
|
||||||
|
"type": "PrivateIdentifier",
|
||||||
|
"start":35,"end":39,"loc":{"start":{"line":3,"column":9},"end":{"line":3,"column":13}},
|
||||||
|
"name": "bar"
|
||||||
|
},
|
||||||
|
"value": {
|
||||||
|
"type": "Identifier",
|
||||||
|
"start":42,"end":45,"loc":{"start":{"line":3,"column":16},"end":{"line":3,"column":19},"identifierName":"foo"},
|
||||||
|
"name": "foo"
|
||||||
|
},
|
||||||
|
"computed": false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,3 +1,7 @@
|
|||||||
{
|
{
|
||||||
"plugins": ["typescript", "estree", "classPrivateProperties"]
|
"plugins": [
|
||||||
|
"typescript",
|
||||||
|
["estree", { "classFeatures": true }],
|
||||||
|
"classPrivateProperties"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,3 +1,3 @@
|
|||||||
{
|
{
|
||||||
"plugins": ["estree", "classProperties"]
|
"plugins": [["estree", { "classFeatures": true }], "classProperties"]
|
||||||
}
|
}
|
||||||
|
|||||||
6
packages/babel-parser/test/fixtures/estree/class-property/not-enabled/input.js
vendored
Normal file
6
packages/babel-parser/test/fixtures/estree/class-property/not-enabled/input.js
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
class A {
|
||||||
|
foo = "bar";
|
||||||
|
[bar] = foo;
|
||||||
|
static "qux" = "quux";
|
||||||
|
static [quux] = "qux";
|
||||||
|
}
|
||||||
3
packages/babel-parser/test/fixtures/estree/class-property/not-enabled/options.json
vendored
Normal file
3
packages/babel-parser/test/fixtures/estree/class-property/not-enabled/options.json
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"plugins": ["estree", "classProperties"]
|
||||||
|
}
|
||||||
96
packages/babel-parser/test/fixtures/estree/class-property/not-enabled/output.json
vendored
Normal file
96
packages/babel-parser/test/fixtures/estree/class-property/not-enabled/output.json
vendored
Normal file
@ -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": "ClassProperty",
|
||||||
|
"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": "ClassProperty",
|
||||||
|
"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": "ClassProperty",
|
||||||
|
"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": "ClassProperty",
|
||||||
|
"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\""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -21,21 +21,24 @@
|
|||||||
"start":8,"end":75,"loc":{"start":{"line":1,"column":8},"end":{"line":6,"column":1}},
|
"start":8,"end":75,"loc":{"start":{"line":1,"column":8},"end":{"line":6,"column":1}},
|
||||||
"body": [
|
"body": [
|
||||||
{
|
{
|
||||||
"type": "PropertyDefinition",
|
"type": "ClassPrivateProperty",
|
||||||
"start":12,"end":25,"loc":{"start":{"line":2,"column":2},"end":{"line":2,"column":15}},
|
"start":12,"end":25,"loc":{"start":{"line":2,"column":2},"end":{"line":2,"column":15}},
|
||||||
"static": false,
|
"static": false,
|
||||||
"key": {
|
"key": {
|
||||||
"type": "PrivateIdentifier",
|
"type": "PrivateName",
|
||||||
"start":12,"end":16,"loc":{"start":{"line":2,"column":2},"end":{"line":2,"column":6}},
|
"start":12,"end":16,"loc":{"start":{"line":2,"column":2},"end":{"line":2,"column":6}},
|
||||||
"name": "foo"
|
"id": {
|
||||||
|
"type": "Identifier",
|
||||||
|
"start":13,"end":16,"loc":{"start":{"line":2,"column":3},"end":{"line":2,"column":6},"identifierName":"foo"},
|
||||||
|
"name": "foo"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"value": {
|
"value": {
|
||||||
"type": "Literal",
|
"type": "Literal",
|
||||||
"start":19,"end":24,"loc":{"start":{"line":2,"column":9},"end":{"line":2,"column":14}},
|
"start":19,"end":24,"loc":{"start":{"line":2,"column":9},"end":{"line":2,"column":14}},
|
||||||
"value": "bar",
|
"value": "bar",
|
||||||
"raw": "\"bar\""
|
"raw": "\"bar\""
|
||||||
},
|
}
|
||||||
"computed": false
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "MethodDefinition",
|
"type": "MethodDefinition",
|
||||||
@ -73,9 +76,13 @@
|
|||||||
"type": "BinaryExpression",
|
"type": "BinaryExpression",
|
||||||
"start":57,"end":68,"loc":{"start":{"line":4,"column":11},"end":{"line":4,"column":22}},
|
"start":57,"end":68,"loc":{"start":{"line":4,"column":11},"end":{"line":4,"column":22}},
|
||||||
"left": {
|
"left": {
|
||||||
"type": "PrivateIdentifier",
|
"type": "PrivateName",
|
||||||
"start":57,"end":61,"loc":{"start":{"line":4,"column":11},"end":{"line":4,"column":15}},
|
"start":57,"end":61,"loc":{"start":{"line":4,"column":11},"end":{"line":4,"column":15}},
|
||||||
"name": "foo"
|
"id": {
|
||||||
|
"type": "Identifier",
|
||||||
|
"start":58,"end":61,"loc":{"start":{"line":4,"column":12},"end":{"line":4,"column":15},"identifierName":"foo"},
|
||||||
|
"name": "foo"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"operator": "in",
|
"operator": "in",
|
||||||
"right": {
|
"right": {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user