From b8dcd6f593955be2779b770182a4e8930288cdaa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Ribaudo?= Date: Sat, 2 Jun 2018 13:07:15 +0200 Subject: [PATCH] Remove parser support for decorators optional parentheses (#8037) * Remove parser support for decorators optional parentheses * Update fixtures --- .../test/fixtures/parse/output.json | 2 +- .../src/generators/expressions.js | 2 +- packages/babel-parser/src/parser/statement.js | 18 +- .../class-decorator-call-expr/output.json | 61 ++-- .../decorators-2/class-decorator/output.json | 2 +- .../decorators-2/class-expression/output.json | 4 +- .../decorators-2/class-generator/output.json | 2 +- .../decorators-2/class-property/output.json | 2 +- .../decorators-2/complex-expr/output.json | 173 ++++++----- .../decorators-2/compued-property/output.json | 2 +- .../output.json | 2 +- .../output.json | 2 +- .../decoratorsBeforeExport-export/output.json | 2 +- .../export-decorated-class/output.json | 2 +- .../output.json | 2 +- .../decorators-2/get-decorator/output.json | 2 +- .../output.json | 227 ++++++++------- .../nested-class-decorator/output.json | 4 +- .../output.json | 271 +++++++++--------- .../nested-method-decorator/output.json | 6 +- .../on-computed-name-method/output.json | 2 +- .../decorators-2/parenthesized/output.json | 6 +- .../decorators-2/private-property/output.json | 2 +- .../decorators-2/set-decorator/output.json | 2 +- .../decorators-2/static-method/output.json | 2 +- .../decorators-2/static-property/output.json | 2 +- .../class-decorator-assignment/output.json | 2 +- .../class-decorator-call-expr/output.json | 2 +- .../class-decorator-getter/output.json | 2 +- .../class-decorator-same-line/output.json | 2 +- .../class-decorator-setter/output.json | 2 +- .../decorators/class-decorator/output.json | 2 +- .../class-decorators-multiple/output.json | 4 +- .../class-method-parameter/output.json | 6 +- .../computed-member-expr-on-prop/output.json | 2 +- .../computed-member-expression/output.json | 2 +- .../export-decorators-on-class/output.json | 2 +- .../output.json | 6 +- .../output.json | 2 +- .../output.json | 2 +- .../output.json | 6 +- .../function-expression-parameter/output.json | 6 +- .../decorators/method-decorator/output.json | 2 +- .../decorators/object-decorator/output.json | 6 +- .../object-method-parameter/output.json | 6 +- .../experimental/uncategorised/40/output.json | 4 +- .../experimental/uncategorised/47/output.json | 2 +- .../experimental/uncategorised/48/output.json | 2 +- .../experimental/uncategorised/49/output.json | 2 +- .../experimental/uncategorised/62/output.json | 2 +- .../output.json | 2 +- .../decorators/abstract-class/output.json | 2 +- .../src/transformer-legacy.js | 16 +- packages/babel-types/README.md | 5 +- .../src/definitions/experimental.js | 11 +- 55 files changed, 487 insertions(+), 429 deletions(-) diff --git a/packages/babel-core/test/fixtures/parse/output.json b/packages/babel-core/test/fixtures/parse/output.json index cc9b87123a..06fb684869 100644 --- a/packages/babel-core/test/fixtures/parse/output.json +++ b/packages/babel-core/test/fixtures/parse/output.json @@ -58,7 +58,7 @@ "column": 11 } }, - "callee": { + "expression": { "type": "Identifier", "start": 1, "end": 11, diff --git a/packages/babel-generator/src/generators/expressions.js b/packages/babel-generator/src/generators/expressions.js index b331880ce1..9bb8417033 100644 --- a/packages/babel-generator/src/generators/expressions.js +++ b/packages/babel-generator/src/generators/expressions.js @@ -92,7 +92,7 @@ export function Super() { export function Decorator(node: Object) { this.token("@"); - this.print(node.callee, node); + this.print(node.expression, node); this.newline(); } diff --git a/packages/babel-parser/src/parser/statement.js b/packages/babel-parser/src/parser/statement.js index 309fc98320..0f22ec3d7f 100644 --- a/packages/babel-parser/src/parser/statement.js +++ b/packages/babel-parser/src/parser/statement.js @@ -286,13 +286,15 @@ export default class StatementParser extends ExpressionParser { // So that the decorators of any nested class expressions will be dealt with separately this.state.decoratorStack.push([]); + const startPos = this.state.start; + const startLoc = this.state.startLoc; + let expr: N.Expression; + if (this.eat(tt.parenL)) { - node.callee = this.parseExpression(); + expr = this.parseExpression(); this.expect(tt.parenR); } else { - const startPos = this.state.start; - const startLoc = this.state.startLoc; - let expr = this.parseIdentifier(false); + expr = this.parseIdentifier(false); while (this.eat(tt.dot)) { const node = this.startNodeAt(startPos, startLoc); @@ -301,18 +303,20 @@ export default class StatementParser extends ExpressionParser { node.computed = false; expr = this.finishNode(node, "MemberExpression"); } - - node.callee = expr; } if (this.eat(tt.parenL)) { + const node = this.startNodeAt(startPos, startLoc); + node.callee = expr; node.arguments = this.parseCallExpressionArguments(tt.parenR, false); this.toReferencedList(node.arguments); + expr = this.finishNode(node, "CallExpression"); } + node.expression = expr; this.state.decoratorStack.pop(); } else { - node.callee = this.parseMaybeAssign(); + node.expression = this.parseMaybeAssign(); } return this.finishNode(node, "Decorator"); } diff --git a/packages/babel-parser/test/fixtures/experimental/decorators-2/class-decorator-call-expr/output.json b/packages/babel-parser/test/fixtures/experimental/decorators-2/class-decorator-call-expr/output.json index e00c9a37e3..73a9e36039 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators-2/class-decorator-call-expr/output.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators-2/class-decorator-call-expr/output.json @@ -58,10 +58,10 @@ "column": 11 } }, - "callee": { - "type": "Identifier", + "expression": { + "type": "CallExpression", "start": 1, - "end": 4, + "end": 11, "loc": { "start": { "line": 1, @@ -69,34 +69,49 @@ }, "end": { "line": 1, - "column": 4 - }, - "identifierName": "foo" + "column": 11 + } }, - "name": "foo" - }, - "arguments": [ - { - "type": "StringLiteral", - "start": 5, - "end": 10, + "callee": { + "type": "Identifier", + "start": 1, + "end": 4, "loc": { "start": { "line": 1, - "column": 5 + "column": 1 }, "end": { "line": 1, - "column": 10 - } + "column": 4 + }, + "identifierName": "foo" }, - "extra": { - "rawValue": "bar", - "raw": "'bar'" - }, - "value": "bar" - } - ] + "name": "foo" + }, + "arguments": [ + { + "type": "StringLiteral", + "start": 5, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "extra": { + "rawValue": "bar", + "raw": "'bar'" + }, + "value": "bar" + } + ] + } } ], "id": { diff --git a/packages/babel-parser/test/fixtures/experimental/decorators-2/class-decorator/output.json b/packages/babel-parser/test/fixtures/experimental/decorators-2/class-decorator/output.json index 56103e1ae0..2f219a4993 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators-2/class-decorator/output.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators-2/class-decorator/output.json @@ -58,7 +58,7 @@ "column": 4 } }, - "callee": { + "expression": { "type": "Identifier", "start": 1, "end": 4, diff --git a/packages/babel-parser/test/fixtures/experimental/decorators-2/class-expression/output.json b/packages/babel-parser/test/fixtures/experimental/decorators-2/class-expression/output.json index 671d0c27f5..a3f0718a28 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators-2/class-expression/output.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators-2/class-expression/output.json @@ -104,7 +104,7 @@ "column": 14 } }, - "callee": { + "expression": { "type": "Identifier", "start": 11, "end": 14, @@ -185,7 +185,7 @@ "column": 6 } }, - "callee": { + "expression": { "type": "Identifier", "start": 30, "end": 33, diff --git a/packages/babel-parser/test/fixtures/experimental/decorators-2/class-generator/output.json b/packages/babel-parser/test/fixtures/experimental/decorators-2/class-generator/output.json index 9ea5ab9eb5..e1051a68e2 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators-2/class-generator/output.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators-2/class-generator/output.json @@ -105,7 +105,7 @@ "column": 6 } }, - "callee": { + "expression": { "type": "Identifier", "start": 13, "end": 16, diff --git a/packages/babel-parser/test/fixtures/experimental/decorators-2/class-property/output.json b/packages/babel-parser/test/fixtures/experimental/decorators-2/class-property/output.json index ed596c97a3..81617ba6f1 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators-2/class-property/output.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators-2/class-property/output.json @@ -105,7 +105,7 @@ "column": 6 } }, - "callee": { + "expression": { "type": "Identifier", "start": 13, "end": 16, diff --git a/packages/babel-parser/test/fixtures/experimental/decorators-2/complex-expr/output.json b/packages/babel-parser/test/fixtures/experimental/decorators-2/complex-expr/output.json index 5eb3a76258..d70b2148db 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators-2/complex-expr/output.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators-2/complex-expr/output.json @@ -105,10 +105,10 @@ "column": 16 } }, - "callee": { - "type": "MemberExpression", + "expression": { + "type": "CallExpression", "start": 13, - "end": 20, + "end": 26, "loc": { "start": { "line": 2, @@ -116,13 +116,13 @@ }, "end": { "line": 2, - "column": 10 + "column": 16 } }, - "object": { + "callee": { "type": "MemberExpression", "start": 13, - "end": 18, + "end": 20, "loc": { "start": { "line": 2, @@ -130,13 +130,13 @@ }, "end": { "line": 2, - "column": 8 + "column": 10 } }, "object": { "type": "MemberExpression", "start": 13, - "end": 16, + "end": 18, "loc": { "start": { "line": 2, @@ -144,13 +144,13 @@ }, "end": { "line": 2, - "column": 6 + "column": 8 } }, "object": { - "type": "Identifier", + "type": "MemberExpression", "start": 13, - "end": 14, + "end": 16, "loc": { "start": { "line": 2, @@ -158,105 +158,120 @@ }, "end": { "line": 2, - "column": 4 - }, - "identifierName": "a" + "column": 6 + } }, - "name": "a" + "object": { + "type": "Identifier", + "start": 13, + "end": 14, + "loc": { + "start": { + "line": 2, + "column": 3 + }, + "end": { + "line": 2, + "column": 4 + }, + "identifierName": "a" + }, + "name": "a" + }, + "property": { + "type": "Identifier", + "start": 15, + "end": 16, + "loc": { + "start": { + "line": 2, + "column": 5 + }, + "end": { + "line": 2, + "column": 6 + }, + "identifierName": "b" + }, + "name": "b" + }, + "computed": false }, "property": { "type": "Identifier", - "start": 15, - "end": 16, + "start": 17, + "end": 18, "loc": { "start": { "line": 2, - "column": 5 + "column": 7 }, "end": { "line": 2, - "column": 6 + "column": 8 }, - "identifierName": "b" + "identifierName": "c" }, - "name": "b" + "name": "c" }, "computed": false }, "property": { "type": "Identifier", - "start": 17, - "end": 18, + "start": 19, + "end": 20, "loc": { "start": { "line": 2, - "column": 7 + "column": 9 }, "end": { "line": 2, - "column": 8 + "column": 10 }, - "identifierName": "c" + "identifierName": "d" }, - "name": "c" + "name": "d" }, "computed": false }, - "property": { - "type": "Identifier", - "start": 19, - "end": 20, - "loc": { - "start": { - "line": 2, - "column": 9 + "arguments": [ + { + "type": "Identifier", + "start": 21, + "end": 22, + "loc": { + "start": { + "line": 2, + "column": 11 + }, + "end": { + "line": 2, + "column": 12 + }, + "identifierName": "e" }, - "end": { - "line": 2, - "column": 10 - }, - "identifierName": "d" + "name": "e" }, - "name": "d" - }, - "computed": false - }, - "arguments": [ - { - "type": "Identifier", - "start": 21, - "end": 22, - "loc": { - "start": { - "line": 2, - "column": 11 + { + "type": "Identifier", + "start": 24, + "end": 25, + "loc": { + "start": { + "line": 2, + "column": 14 + }, + "end": { + "line": 2, + "column": 15 + }, + "identifierName": "f" }, - "end": { - "line": 2, - "column": 12 - }, - "identifierName": "e" - }, - "name": "e" - }, - { - "type": "Identifier", - "start": 24, - "end": 25, - "loc": { - "start": { - "line": 2, - "column": 14 - }, - "end": { - "line": 2, - "column": 15 - }, - "identifierName": "f" - }, - "name": "f" - } - ] + "name": "f" + } + ] + } } ], "static": false, diff --git a/packages/babel-parser/test/fixtures/experimental/decorators-2/compued-property/output.json b/packages/babel-parser/test/fixtures/experimental/decorators-2/compued-property/output.json index b5c1eb7bac..5f87a8eafa 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators-2/compued-property/output.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators-2/compued-property/output.json @@ -105,7 +105,7 @@ "column": 6 } }, - "callee": { + "expression": { "type": "Identifier", "start": 15, "end": 18, diff --git a/packages/babel-parser/test/fixtures/experimental/decorators-2/decoratorsBeforeExport-export-default-decorated-expression-with-parens/output.json b/packages/babel-parser/test/fixtures/experimental/decorators-2/decoratorsBeforeExport-export-default-decorated-expression-with-parens/output.json index c9889b9f54..c50380d9a5 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators-2/decoratorsBeforeExport-export-default-decorated-expression-with-parens/output.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators-2/decoratorsBeforeExport-export-default-decorated-expression-with-parens/output.json @@ -72,7 +72,7 @@ "column": 26 } }, - "callee": { + "expression": { "type": "Identifier", "start": 17, "end": 26, diff --git a/packages/babel-parser/test/fixtures/experimental/decorators-2/decoratorsBeforeExport-export-default/output.json b/packages/babel-parser/test/fixtures/experimental/decorators-2/decoratorsBeforeExport-export-default/output.json index e1dcbf71d2..ce1316960a 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators-2/decoratorsBeforeExport-export-default/output.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators-2/decoratorsBeforeExport-export-default/output.json @@ -72,7 +72,7 @@ "column": 10 } }, - "callee": { + "expression": { "type": "Identifier", "start": 1, "end": 10, diff --git a/packages/babel-parser/test/fixtures/experimental/decorators-2/decoratorsBeforeExport-export/output.json b/packages/babel-parser/test/fixtures/experimental/decorators-2/decoratorsBeforeExport-export/output.json index 0dbd22eee4..367972bf31 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators-2/decoratorsBeforeExport-export/output.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators-2/decoratorsBeforeExport-export/output.json @@ -74,7 +74,7 @@ "column": 10 } }, - "callee": { + "expression": { "type": "Identifier", "start": 1, "end": 10, diff --git a/packages/babel-parser/test/fixtures/experimental/decorators-2/export-decorated-class/output.json b/packages/babel-parser/test/fixtures/experimental/decorators-2/export-decorated-class/output.json index 63c87356f2..930ce09662 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators-2/export-decorated-class/output.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators-2/export-decorated-class/output.json @@ -74,7 +74,7 @@ "column": 11 } }, - "callee": { + "expression": { "type": "Identifier", "start": 8, "end": 11, diff --git a/packages/babel-parser/test/fixtures/experimental/decorators-2/export-default-decorated-class/output.json b/packages/babel-parser/test/fixtures/experimental/decorators-2/export-default-decorated-class/output.json index 311f3706d1..c2bd0ff3a8 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators-2/export-default-decorated-class/output.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators-2/export-default-decorated-class/output.json @@ -72,7 +72,7 @@ "column": 4 } }, - "callee": { + "expression": { "type": "Identifier", "start": 17, "end": 20, diff --git a/packages/babel-parser/test/fixtures/experimental/decorators-2/get-decorator/output.json b/packages/babel-parser/test/fixtures/experimental/decorators-2/get-decorator/output.json index 292526245c..a7eeacec59 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators-2/get-decorator/output.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators-2/get-decorator/output.json @@ -105,7 +105,7 @@ "column": 6 } }, - "callee": { + "expression": { "type": "Identifier", "start": 13, "end": 16, diff --git a/packages/babel-parser/test/fixtures/experimental/decorators-2/nested-class-decorator-parameters/output.json b/packages/babel-parser/test/fixtures/experimental/decorators-2/nested-class-decorator-parameters/output.json index 33599a2507..69484e0799 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators-2/nested-class-decorator-parameters/output.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators-2/nested-class-decorator-parameters/output.json @@ -58,160 +58,175 @@ "column": 2 } }, - "callee": { - "type": "Identifier", + "expression": { + "type": "CallExpression", "start": 1, - "end": 6, + "end": 40, "loc": { "start": { "line": 1, "column": 1 }, "end": { - "line": 1, - "column": 6 - }, - "identifierName": "outer" + "line": 3, + "column": 2 + } }, - "name": "outer" - }, - "arguments": [ - { - "type": "ObjectExpression", - "start": 7, - "end": 39, + "callee": { + "type": "Identifier", + "start": 1, + "end": 6, "loc": { "start": { "line": 1, - "column": 7 + "column": 1 }, "end": { - "line": 3, - "column": 1 - } + "line": 1, + "column": 6 + }, + "identifierName": "outer" }, - "properties": [ - { - "type": "ObjectProperty", - "start": 11, - "end": 37, - "loc": { - "start": { - "line": 2, - "column": 2 - }, - "end": { - "line": 2, - "column": 28 - } + "name": "outer" + }, + "arguments": [ + { + "type": "ObjectExpression", + "start": 7, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 7 }, - "method": false, - "key": { - "type": "Identifier", + "end": { + "line": 3, + "column": 1 + } + }, + "properties": [ + { + "type": "ObjectProperty", "start": 11, - "end": 16, + "end": 37, "loc": { "start": { "line": 2, "column": 2 }, - "end": { - "line": 2, - "column": 7 - }, - "identifierName": "store" - }, - "name": "store" - }, - "computed": false, - "shorthand": false, - "value": { - "type": "ClassExpression", - "start": 18, - "end": 37, - "loc": { - "start": { - "line": 2, - "column": 9 - }, "end": { "line": 2, "column": 28 } }, - "decorators": [ - { - "type": "Decorator", - "start": 18, - "end": 24, - "loc": { - "start": { - "line": 2, - "column": 9 - }, - "end": { - "line": 2, - "column": 15 - } - }, - "callee": { - "type": "Identifier", - "start": 19, - "end": 24, - "loc": { - "start": { - "line": 2, - "column": 10 - }, - "end": { - "line": 2, - "column": 15 - }, - "identifierName": "inner" - }, - "name": "inner" - } - } - ], - "id": { + "method": false, + "key": { "type": "Identifier", - "start": 31, - "end": 34, + "start": 11, + "end": 16, "loc": { "start": { "line": 2, - "column": 22 + "column": 2 }, "end": { "line": 2, - "column": 25 + "column": 7 }, - "identifierName": "Foo" + "identifierName": "store" }, - "name": "Foo" + "name": "store" }, - "superClass": null, - "body": { - "type": "ClassBody", - "start": 35, + "computed": false, + "shorthand": false, + "value": { + "type": "ClassExpression", + "start": 18, "end": 37, "loc": { "start": { "line": 2, - "column": 26 + "column": 9 }, "end": { "line": 2, "column": 28 } }, - "body": [] + "decorators": [ + { + "type": "Decorator", + "start": 18, + "end": 24, + "loc": { + "start": { + "line": 2, + "column": 9 + }, + "end": { + "line": 2, + "column": 15 + } + }, + "expression": { + "type": "Identifier", + "start": 19, + "end": 24, + "loc": { + "start": { + "line": 2, + "column": 10 + }, + "end": { + "line": 2, + "column": 15 + }, + "identifierName": "inner" + }, + "name": "inner" + } + } + ], + "id": { + "type": "Identifier", + "start": 31, + "end": 34, + "loc": { + "start": { + "line": 2, + "column": 22 + }, + "end": { + "line": 2, + "column": 25 + }, + "identifierName": "Foo" + }, + "name": "Foo" + }, + "superClass": null, + "body": { + "type": "ClassBody", + "start": 35, + "end": 37, + "loc": { + "start": { + "line": 2, + "column": 26 + }, + "end": { + "line": 2, + "column": 28 + } + }, + "body": [] + } } } - } - ] - } - ] + ] + } + ] + } } ], "id": { diff --git a/packages/babel-parser/test/fixtures/experimental/decorators-2/nested-class-decorator/output.json b/packages/babel-parser/test/fixtures/experimental/decorators-2/nested-class-decorator/output.json index 02e691274b..eefec5ddd7 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators-2/nested-class-decorator/output.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators-2/nested-class-decorator/output.json @@ -58,7 +58,7 @@ "column": 2 } }, - "callee": { + "expression": { "type": "ObjectExpression", "start": 2, "end": 34, @@ -136,7 +136,7 @@ "column": 15 } }, - "callee": { + "expression": { "type": "Identifier", "start": 14, "end": 19, diff --git a/packages/babel-parser/test/fixtures/experimental/decorators-2/nested-method-decorator-parameters/output.json b/packages/babel-parser/test/fixtures/experimental/decorators-2/nested-method-decorator-parameters/output.json index 70e9fa4742..9c14f3d08b 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators-2/nested-method-decorator-parameters/output.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators-2/nested-method-decorator-parameters/output.json @@ -105,183 +105,198 @@ "column": 3 } }, - "callee": { - "type": "Identifier", + "expression": { + "type": "CallExpression", "start": 14, - "end": 19, + "end": 91, "loc": { "start": { "line": 2, "column": 3 }, "end": { - "line": 2, - "column": 8 - }, - "identifierName": "outer" + "line": 7, + "column": 3 + } }, - "name": "outer" - }, - "arguments": [ - { - "type": "ClassExpression", - "start": 25, - "end": 87, + "callee": { + "type": "Identifier", + "start": 14, + "end": 19, "loc": { "start": { - "line": 3, - "column": 4 + "line": 2, + "column": 3 }, "end": { - "line": 6, - "column": 5 - } + "line": 2, + "column": 8 + }, + "identifierName": "outer" }, - "decorators": [ - { - "type": "Decorator", - "start": 25, - "end": 34, - "loc": { - "start": { - "line": 3, - "column": 4 - }, - "end": { - "line": 3, - "column": 13 - } - }, - "callee": { - "type": "Identifier", - "start": 26, - "end": 34, - "loc": { - "start": { - "line": 3, - "column": 5 - }, - "end": { - "line": 3, - "column": 13 - }, - "identifierName": "classDec" - }, - "name": "classDec" - } - } - ], - "id": null, - "superClass": null, - "body": { - "type": "ClassBody", - "start": 41, + "name": "outer" + }, + "arguments": [ + { + "type": "ClassExpression", + "start": 25, "end": 87, "loc": { "start": { "line": 3, - "column": 20 + "column": 4 }, "end": { "line": 6, "column": 5 } }, - "body": [ + "decorators": [ { - "type": "ClassMethod", - "start": 50, - "end": 80, + "type": "Decorator", + "start": 25, + "end": 34, "loc": { "start": { - "line": 4, - "column": 6 + "line": 3, + "column": 4 }, "end": { - "line": 5, - "column": 22 + "line": 3, + "column": 13 } }, - "decorators": [ - { - "type": "Decorator", - "start": 50, - "end": 56, - "loc": { - "start": { - "line": 4, - "column": 6 - }, - "end": { - "line": 4, - "column": 12 - } - }, - "callee": { - "type": "Identifier", - "start": 51, - "end": 56, - "loc": { - "start": { - "line": 4, - "column": 7 - }, - "end": { - "line": 4, - "column": 12 - }, - "identifierName": "inner" - }, - "name": "inner" - } - } - ], - "static": false, - "key": { + "expression": { "type": "Identifier", - "start": 64, - "end": 75, + "start": 26, + "end": 34, "loc": { "start": { - "line": 5, - "column": 6 + "line": 3, + "column": 5 }, "end": { - "line": 5, - "column": 17 + "line": 3, + "column": 13 }, - "identifierName": "innerMethod" + "identifierName": "classDec" }, - "name": "innerMethod" + "name": "classDec" + } + } + ], + "id": null, + "superClass": null, + "body": { + "type": "ClassBody", + "start": 41, + "end": 87, + "loc": { + "start": { + "line": 3, + "column": 20 }, - "computed": false, - "kind": "method", - "id": null, - "generator": false, - "async": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 78, + "end": { + "line": 6, + "column": 5 + } + }, + "body": [ + { + "type": "ClassMethod", + "start": 50, "end": 80, "loc": { "start": { - "line": 5, - "column": 20 + "line": 4, + "column": 6 }, "end": { "line": 5, "column": 22 } }, - "body": [], - "directives": [] + "decorators": [ + { + "type": "Decorator", + "start": 50, + "end": 56, + "loc": { + "start": { + "line": 4, + "column": 6 + }, + "end": { + "line": 4, + "column": 12 + } + }, + "expression": { + "type": "Identifier", + "start": 51, + "end": 56, + "loc": { + "start": { + "line": 4, + "column": 7 + }, + "end": { + "line": 4, + "column": 12 + }, + "identifierName": "inner" + }, + "name": "inner" + } + } + ], + "static": false, + "key": { + "type": "Identifier", + "start": 64, + "end": 75, + "loc": { + "start": { + "line": 5, + "column": 6 + }, + "end": { + "line": 5, + "column": 17 + }, + "identifierName": "innerMethod" + }, + "name": "innerMethod" + }, + "computed": false, + "kind": "method", + "id": null, + "generator": false, + "async": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 78, + "end": 80, + "loc": { + "start": { + "line": 5, + "column": 20 + }, + "end": { + "line": 5, + "column": 22 + } + }, + "body": [], + "directives": [] + } } - } - ] + ] + } } - } - ] + ] + } } ], "static": false, diff --git a/packages/babel-parser/test/fixtures/experimental/decorators-2/nested-method-decorator/output.json b/packages/babel-parser/test/fixtures/experimental/decorators-2/nested-method-decorator/output.json index c7467389c3..1499a3ede5 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators-2/nested-method-decorator/output.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators-2/nested-method-decorator/output.json @@ -105,7 +105,7 @@ "column": 3 } }, - "callee": { + "expression": { "type": "ClassExpression", "start": 20, "end": 82, @@ -134,7 +134,7 @@ "column": 13 } }, - "callee": { + "expression": { "type": "Identifier", "start": 21, "end": 29, @@ -199,7 +199,7 @@ "column": 12 } }, - "callee": { + "expression": { "type": "Identifier", "start": 46, "end": 51, diff --git a/packages/babel-parser/test/fixtures/experimental/decorators-2/on-computed-name-method/output.json b/packages/babel-parser/test/fixtures/experimental/decorators-2/on-computed-name-method/output.json index 21195e84f6..2757a35b01 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators-2/on-computed-name-method/output.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators-2/on-computed-name-method/output.json @@ -105,7 +105,7 @@ "column": 6 } }, - "callee": { + "expression": { "type": "Identifier", "start": 13, "end": 16, diff --git a/packages/babel-parser/test/fixtures/experimental/decorators-2/parenthesized/output.json b/packages/babel-parser/test/fixtures/experimental/decorators-2/parenthesized/output.json index f45ee7e420..fa5fdd6bf2 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators-2/parenthesized/output.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators-2/parenthesized/output.json @@ -58,7 +58,7 @@ "column": 12 } }, - "callee": { + "expression": { "type": "MemberExpression", "start": 2, "end": 11, @@ -188,7 +188,7 @@ "column": 23 } }, - "callee": { + "expression": { "type": "MemberExpression", "start": 29, "end": 47, @@ -311,7 +311,7 @@ "column": 14 } }, - "callee": { + "expression": { "type": "BinaryExpression", "start": 66, "end": 75, diff --git a/packages/babel-parser/test/fixtures/experimental/decorators-2/private-property/output.json b/packages/babel-parser/test/fixtures/experimental/decorators-2/private-property/output.json index 4a36d0bc5a..cc4e05e150 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators-2/private-property/output.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators-2/private-property/output.json @@ -105,7 +105,7 @@ "column": 6 } }, - "callee": { + "expression": { "type": "Identifier", "start": 13, "end": 16, diff --git a/packages/babel-parser/test/fixtures/experimental/decorators-2/set-decorator/output.json b/packages/babel-parser/test/fixtures/experimental/decorators-2/set-decorator/output.json index a92ec416c9..573d999a9e 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators-2/set-decorator/output.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators-2/set-decorator/output.json @@ -105,7 +105,7 @@ "column": 6 } }, - "callee": { + "expression": { "type": "Identifier", "start": 13, "end": 16, diff --git a/packages/babel-parser/test/fixtures/experimental/decorators-2/static-method/output.json b/packages/babel-parser/test/fixtures/experimental/decorators-2/static-method/output.json index 2325833e6f..ecda9741a8 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators-2/static-method/output.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators-2/static-method/output.json @@ -105,7 +105,7 @@ "column": 6 } }, - "callee": { + "expression": { "type": "Identifier", "start": 15, "end": 18, diff --git a/packages/babel-parser/test/fixtures/experimental/decorators-2/static-property/output.json b/packages/babel-parser/test/fixtures/experimental/decorators-2/static-property/output.json index 64e221ec7e..bb0fc456e6 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators-2/static-property/output.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators-2/static-property/output.json @@ -105,7 +105,7 @@ "column": 6 } }, - "callee": { + "expression": { "type": "Identifier", "start": 13, "end": 16, diff --git a/packages/babel-parser/test/fixtures/experimental/decorators/class-decorator-assignment/output.json b/packages/babel-parser/test/fixtures/experimental/decorators/class-decorator-assignment/output.json index 0344c4a595..1da946b580 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators/class-decorator-assignment/output.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators/class-decorator-assignment/output.json @@ -104,7 +104,7 @@ "column": 14 } }, - "callee": { + "expression": { "type": "Identifier", "start": 11, "end": 14, diff --git a/packages/babel-parser/test/fixtures/experimental/decorators/class-decorator-call-expr/output.json b/packages/babel-parser/test/fixtures/experimental/decorators/class-decorator-call-expr/output.json index 5eafa7fd84..73a9e36039 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators/class-decorator-call-expr/output.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators/class-decorator-call-expr/output.json @@ -58,7 +58,7 @@ "column": 11 } }, - "callee": { + "expression": { "type": "CallExpression", "start": 1, "end": 11, diff --git a/packages/babel-parser/test/fixtures/experimental/decorators/class-decorator-getter/output.json b/packages/babel-parser/test/fixtures/experimental/decorators/class-decorator-getter/output.json index 7703fba3af..13de96b505 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators/class-decorator-getter/output.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators/class-decorator-getter/output.json @@ -105,7 +105,7 @@ "column": 16 } }, - "callee": { + "expression": { "type": "Identifier", "start": 13, "end": 16, diff --git a/packages/babel-parser/test/fixtures/experimental/decorators/class-decorator-same-line/output.json b/packages/babel-parser/test/fixtures/experimental/decorators/class-decorator-same-line/output.json index c6997769eb..1ad3eafe69 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators/class-decorator-same-line/output.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators/class-decorator-same-line/output.json @@ -58,7 +58,7 @@ "column": 4 } }, - "callee": { + "expression": { "type": "Identifier", "start": 1, "end": 4, diff --git a/packages/babel-parser/test/fixtures/experimental/decorators/class-decorator-setter/output.json b/packages/babel-parser/test/fixtures/experimental/decorators/class-decorator-setter/output.json index 93fd705f6a..03f0153ce8 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators/class-decorator-setter/output.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators/class-decorator-setter/output.json @@ -105,7 +105,7 @@ "column": 16 } }, - "callee": { + "expression": { "type": "Identifier", "start": 13, "end": 16, diff --git a/packages/babel-parser/test/fixtures/experimental/decorators/class-decorator/output.json b/packages/babel-parser/test/fixtures/experimental/decorators/class-decorator/output.json index 56103e1ae0..2f219a4993 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators/class-decorator/output.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators/class-decorator/output.json @@ -58,7 +58,7 @@ "column": 4 } }, - "callee": { + "expression": { "type": "Identifier", "start": 1, "end": 4, diff --git a/packages/babel-parser/test/fixtures/experimental/decorators/class-decorators-multiple/output.json b/packages/babel-parser/test/fixtures/experimental/decorators/class-decorators-multiple/output.json index c7f92d6693..8e9991ea81 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators/class-decorators-multiple/output.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators/class-decorators-multiple/output.json @@ -105,7 +105,7 @@ "column": 16 } }, - "callee": { + "expression": { "type": "Identifier", "start": 13, "end": 16, @@ -137,7 +137,7 @@ "column": 21 } }, - "callee": { + "expression": { "type": "Identifier", "start": 18, "end": 21, diff --git a/packages/babel-parser/test/fixtures/experimental/decorators/class-method-parameter/output.json b/packages/babel-parser/test/fixtures/experimental/decorators/class-method-parameter/output.json index ff1d85ed54..da595a9e8f 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators/class-method-parameter/output.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators/class-method-parameter/output.json @@ -145,7 +145,7 @@ "column": 20 } }, - "callee": { + "expression": { "type": "CallExpression", "start": 27, "end": 32, @@ -212,7 +212,7 @@ "column": 40 } }, - "callee": { + "expression": { "type": "CallExpression", "start": 37, "end": 52, @@ -333,7 +333,7 @@ "column": 47 } }, - "callee": { + "expression": { "type": "CallExpression", "start": 54, "end": 59, diff --git a/packages/babel-parser/test/fixtures/experimental/decorators/computed-member-expr-on-prop/output.json b/packages/babel-parser/test/fixtures/experimental/decorators/computed-member-expr-on-prop/output.json index 894dab3d67..5432f965ce 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators/computed-member-expr-on-prop/output.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators/computed-member-expr-on-prop/output.json @@ -105,7 +105,7 @@ "column": 11 } }, - "callee": { + "expression": { "type": "MemberExpression", "start": 15, "end": 23, diff --git a/packages/babel-parser/test/fixtures/experimental/decorators/computed-member-expression/output.json b/packages/babel-parser/test/fixtures/experimental/decorators/computed-member-expression/output.json index c7ce3371a1..a9cbc8c8e7 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators/computed-member-expression/output.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators/computed-member-expression/output.json @@ -105,7 +105,7 @@ "column": 12 } }, - "callee": { + "expression": { "type": "MemberExpression", "start": 15, "end": 24, diff --git a/packages/babel-parser/test/fixtures/experimental/decorators/export-decorators-on-class/output.json b/packages/babel-parser/test/fixtures/experimental/decorators/export-decorators-on-class/output.json index e13a6d5154..45bae118fd 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators/export-decorators-on-class/output.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators/export-decorators-on-class/output.json @@ -74,7 +74,7 @@ "column": 4 } }, - "callee": { + "expression": { "type": "Identifier", "start": 1, "end": 4, diff --git a/packages/babel-parser/test/fixtures/experimental/decorators/export-default-declaration-function-declaration-parameter/output.json b/packages/babel-parser/test/fixtures/experimental/decorators/export-default-declaration-function-declaration-parameter/output.json index 9f5b3306d2..d0b7148af2 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators/export-default-declaration-function-declaration-parameter/output.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators/export-default-declaration-function-declaration-parameter/output.json @@ -108,7 +108,7 @@ "column": 35 } }, - "callee": { + "expression": { "type": "CallExpression", "start": 30, "end": 35, @@ -175,7 +175,7 @@ "column": 55 } }, - "callee": { + "expression": { "type": "CallExpression", "start": 40, "end": 55, @@ -296,7 +296,7 @@ "column": 62 } }, - "callee": { + "expression": { "type": "CallExpression", "start": 57, "end": 62, diff --git a/packages/babel-parser/test/fixtures/experimental/decorators/export-default-decorators-on-class/output.json b/packages/babel-parser/test/fixtures/experimental/decorators/export-default-decorators-on-class/output.json index 0bf7e9bf01..0cc967280f 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators/export-default-decorators-on-class/output.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators/export-default-decorators-on-class/output.json @@ -72,7 +72,7 @@ "column": 4 } }, - "callee": { + "expression": { "type": "Identifier", "start": 1, "end": 4, diff --git a/packages/babel-parser/test/fixtures/experimental/decorators/export-default-with-nested-class/output.json b/packages/babel-parser/test/fixtures/experimental/decorators/export-default-with-nested-class/output.json index 405d6d18c0..a63b4c84a2 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators/export-default-with-nested-class/output.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators/export-default-with-nested-class/output.json @@ -72,7 +72,7 @@ "column": 16 } }, - "callee": { + "expression": { "type": "Identifier", "start": 1, "end": 16, diff --git a/packages/babel-parser/test/fixtures/experimental/decorators/function-declaration-parameter/output.json b/packages/babel-parser/test/fixtures/experimental/decorators/function-declaration-parameter/output.json index 2e227d88f6..b768e4ab0f 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators/function-declaration-parameter/output.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators/function-declaration-parameter/output.json @@ -94,7 +94,7 @@ "column": 20 } }, - "callee": { + "expression": { "type": "CallExpression", "start": 15, "end": 20, @@ -161,7 +161,7 @@ "column": 40 } }, - "callee": { + "expression": { "type": "CallExpression", "start": 25, "end": 40, @@ -282,7 +282,7 @@ "column": 47 } }, - "callee": { + "expression": { "type": "CallExpression", "start": 42, "end": 47, diff --git a/packages/babel-parser/test/fixtures/experimental/decorators/function-expression-parameter/output.json b/packages/babel-parser/test/fixtures/experimental/decorators/function-expression-parameter/output.json index 0b6aef6176..8ad3ed2051 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators/function-expression-parameter/output.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators/function-expression-parameter/output.json @@ -124,7 +124,7 @@ "column": 29 } }, - "callee": { + "expression": { "type": "CallExpression", "start": 24, "end": 29, @@ -191,7 +191,7 @@ "column": 49 } }, - "callee": { + "expression": { "type": "CallExpression", "start": 34, "end": 49, @@ -312,7 +312,7 @@ "column": 56 } }, - "callee": { + "expression": { "type": "CallExpression", "start": 51, "end": 56, diff --git a/packages/babel-parser/test/fixtures/experimental/decorators/method-decorator/output.json b/packages/babel-parser/test/fixtures/experimental/decorators/method-decorator/output.json index 140bd4d22d..3a8f32412f 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators/method-decorator/output.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators/method-decorator/output.json @@ -105,7 +105,7 @@ "column": 16 } }, - "callee": { + "expression": { "type": "Identifier", "start": 13, "end": 16, diff --git a/packages/babel-parser/test/fixtures/experimental/decorators/object-decorator/output.json b/packages/babel-parser/test/fixtures/experimental/decorators/object-decorator/output.json index 78741f9504..185dae7e4a 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators/object-decorator/output.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators/object-decorator/output.json @@ -58,7 +58,7 @@ "column": 25 } }, - "callee": { + "expression": { "type": "CallExpression", "start": 1, "end": 25, @@ -134,7 +134,7 @@ "column": 11 } }, - "callee": { + "expression": { "type": "Identifier", "start": 8, "end": 11, @@ -213,7 +213,7 @@ "column": 30 } }, - "callee": { + "expression": { "type": "Identifier", "start": 27, "end": 30, diff --git a/packages/babel-parser/test/fixtures/experimental/decorators/object-method-parameter/output.json b/packages/babel-parser/test/fixtures/experimental/decorators/object-method-parameter/output.json index a385e38019..b50f70a27b 100644 --- a/packages/babel-parser/test/fixtures/experimental/decorators/object-method-parameter/output.json +++ b/packages/babel-parser/test/fixtures/experimental/decorators/object-method-parameter/output.json @@ -159,7 +159,7 @@ "column": 15 } }, - "callee": { + "expression": { "type": "CallExpression", "start": 22, "end": 27, @@ -226,7 +226,7 @@ "column": 35 } }, - "callee": { + "expression": { "type": "CallExpression", "start": 32, "end": 47, @@ -347,7 +347,7 @@ "column": 42 } }, - "callee": { + "expression": { "type": "CallExpression", "start": 49, "end": 54, diff --git a/packages/babel-parser/test/fixtures/experimental/uncategorised/40/output.json b/packages/babel-parser/test/fixtures/experimental/uncategorised/40/output.json index 00fa0002b3..5ac3740768 100644 --- a/packages/babel-parser/test/fixtures/experimental/uncategorised/40/output.json +++ b/packages/babel-parser/test/fixtures/experimental/uncategorised/40/output.json @@ -58,7 +58,7 @@ "column": 4 } }, - "callee": { + "expression": { "type": "Identifier", "start": 1, "end": 4, @@ -123,7 +123,7 @@ "column": 27 } }, - "callee": { + "expression": { "type": "Identifier", "start": 24, "end": 27, diff --git a/packages/babel-parser/test/fixtures/experimental/uncategorised/47/output.json b/packages/babel-parser/test/fixtures/experimental/uncategorised/47/output.json index 04801415dd..6f706f4594 100644 --- a/packages/babel-parser/test/fixtures/experimental/uncategorised/47/output.json +++ b/packages/babel-parser/test/fixtures/experimental/uncategorised/47/output.json @@ -105,7 +105,7 @@ "column": 16 } }, - "callee": { + "expression": { "type": "Identifier", "start": 13, "end": 16, diff --git a/packages/babel-parser/test/fixtures/experimental/uncategorised/48/output.json b/packages/babel-parser/test/fixtures/experimental/uncategorised/48/output.json index a5bf501347..44a2796b64 100644 --- a/packages/babel-parser/test/fixtures/experimental/uncategorised/48/output.json +++ b/packages/babel-parser/test/fixtures/experimental/uncategorised/48/output.json @@ -105,7 +105,7 @@ "column": 16 } }, - "callee": { + "expression": { "type": "Identifier", "start": 13, "end": 16, diff --git a/packages/babel-parser/test/fixtures/experimental/uncategorised/49/output.json b/packages/babel-parser/test/fixtures/experimental/uncategorised/49/output.json index 716c328037..c1a06bff10 100644 --- a/packages/babel-parser/test/fixtures/experimental/uncategorised/49/output.json +++ b/packages/babel-parser/test/fixtures/experimental/uncategorised/49/output.json @@ -119,7 +119,7 @@ "column": 16 } }, - "callee": { + "expression": { "type": "Identifier", "start": 13, "end": 16, diff --git a/packages/babel-parser/test/fixtures/experimental/uncategorised/62/output.json b/packages/babel-parser/test/fixtures/experimental/uncategorised/62/output.json index 3b78f4f457..08ee75175b 100644 --- a/packages/babel-parser/test/fixtures/experimental/uncategorised/62/output.json +++ b/packages/babel-parser/test/fixtures/experimental/uncategorised/62/output.json @@ -58,7 +58,7 @@ "column": 24 } }, - "callee": { + "expression": { "type": "CallExpression", "start": 1, "end": 24, diff --git a/packages/babel-parser/test/fixtures/typescript/class/parameter-properties-with-decorators/output.json b/packages/babel-parser/test/fixtures/typescript/class/parameter-properties-with-decorators/output.json index 6fa8e5718c..22072d89e4 100644 --- a/packages/babel-parser/test/fixtures/typescript/class/parameter-properties-with-decorators/output.json +++ b/packages/babel-parser/test/fixtures/typescript/class/parameter-properties-with-decorators/output.json @@ -143,7 +143,7 @@ "column": 20 } }, - "callee": { + "expression": { "type": "Identifier", "start": 27, "end": 30, diff --git a/packages/babel-parser/test/fixtures/typescript/decorators/abstract-class/output.json b/packages/babel-parser/test/fixtures/typescript/decorators/abstract-class/output.json index 60196a4ac0..d286de258e 100644 --- a/packages/babel-parser/test/fixtures/typescript/decorators/abstract-class/output.json +++ b/packages/babel-parser/test/fixtures/typescript/decorators/abstract-class/output.json @@ -59,7 +59,7 @@ "column": 11 } }, - "callee": { + "expression": { "type": "CallExpression", "start": 1, "end": 11, diff --git a/packages/babel-plugin-proposal-decorators/src/transformer-legacy.js b/packages/babel-plugin-proposal-decorators/src/transformer-legacy.js index 2d7102ba50..6c01069b1a 100644 --- a/packages/babel-plugin-proposal-decorators/src/transformer-legacy.js +++ b/packages/babel-plugin-proposal-decorators/src/transformer-legacy.js @@ -39,18 +39,18 @@ function applyEnsureOrdering(path) { ).reduce((acc, prop) => acc.concat(prop.node.decorators || []), []); const identDecorators = decorators.filter( - decorator => !t.isIdentifier(decorator.callee), + decorator => !t.isIdentifier(decorator.expression), ); if (identDecorators.length === 0) return; return t.sequenceExpression( identDecorators .map(decorator => { - const callee = decorator.callee; - const id = (decorator.callee = path.scope.generateDeclaredUidIdentifier( + const expression = decorator.expression; + const id = (decorator.expression = path.scope.generateDeclaredUidIdentifier( "dec", )); - return t.assignmentExpression("=", id, callee); + return t.assignmentExpression("=", id, expression); }) .concat([path.node]), ); @@ -69,7 +69,7 @@ function applyClassDecorators(classPath) { const name = classPath.scope.generateDeclaredUidIdentifier("class"); return decorators - .map(dec => dec.callee) + .map(dec => dec.expression) .reverse() .reduce(function(acc, decorator) { return buildClassDecorator({ @@ -164,7 +164,9 @@ function applyTargetDecorators(path, state, decoratedProps) { t.callExpression(state.addHelper("applyDecoratedDescriptor"), [ t.cloneNode(target), t.cloneNode(property), - t.arrayExpression(decorators.map(dec => t.cloneNode(dec.callee))), + t.arrayExpression( + decorators.map(dec => t.cloneNode(dec.expression)), + ), t.objectExpression([ t.objectProperty( t.identifier("enumerable"), @@ -180,7 +182,7 @@ function applyTargetDecorators(path, state, decoratedProps) { t.callExpression(state.addHelper("applyDecoratedDescriptor"), [ t.cloneNode(target), t.cloneNode(property), - t.arrayExpression(decorators.map(dec => t.cloneNode(dec.callee))), + t.arrayExpression(decorators.map(dec => t.cloneNode(dec.expression))), t.isObjectProperty(node) || t.isClassProperty(node, { static: true }) ? buildGetObjectInitializer({ TEMP: path.scope.generateDeclaredUidIdentifier("init"), diff --git a/packages/babel-types/README.md b/packages/babel-types/README.md index 9919328406..7aa091302b 100644 --- a/packages/babel-types/README.md +++ b/packages/babel-types/README.md @@ -600,13 +600,12 @@ Aliases: `Flow`, `FlowPredicate` ### decorator ```javascript -t.decorator(callee, arguments) +t.decorator(expression) ``` See also `t.isDecorator(node, opts)` and `t.assertDecorator(node, opts)`. - - `callee`: `Expression` (required) - - `arguments`: `Array` (default: `null`) + - `expression`: `Expression` (required) --- diff --git a/packages/babel-types/src/definitions/experimental.js b/packages/babel-types/src/definitions/experimental.js index 6555d9344c..2e27f1ed43 100644 --- a/packages/babel-types/src/definitions/experimental.js +++ b/packages/babel-types/src/definitions/experimental.js @@ -136,18 +136,11 @@ defineType("Import", { }); defineType("Decorator", { - visitor: ["callee", "arguments"], + visitor: ["expression"], fields: { - callee: { + expression: { validate: assertNodeType("Expression"), }, - arguments: { - optional: true, - validate: chain( - assertValueType("array"), - assertEach(assertNodeType("Expression", "SpreadElement")), - ), - }, }, });